sql - 上个月的最后一天 - BigQuery

标签 sql tsql google-bigquery

我正在尝试选择时间戳字段 recdate 的日期值直到并包含该月最后一天完成的行。例如,由于这是 2016 年 7 月,我希望日期值不超过 31-06-2016 的所有行。这曾经在 T-SQL 中工作正常,我会使用以下内容并将其分配给 @today 并将其放在我的 WHERE 中:

DECLARE @today DATETIME SELECT @today = CONVERT(VARCHAR(25),DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())-0,0)));

我在 BigQuery 中挣扎,但我无法让 DATEDIFF 或 GETDATE 工作,想知道是否有人对此有想法?

最好的祝愿

戴夫

最佳答案

另一种方式与 标准 SQL。

本月第一天:

SELECT DATE_TRUNC(CURRENT_DATE(), MONTH)

上个月的最后一天(当前的第一天减 1):
SELECT DATE_SUB(DATE_TRUNC(CURRENT_DATE(), MONTH), INTERVAL 1 DAY)

下个月第一天:
SELECT DATE_TRUNC(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH)

本月的最后一天(下个月的第一天减 1):
SELECT DATE_SUB(DATE_TRUNC(DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH), MONTH), INTERVAL 1 DAY)

关于sql - 上个月的最后一天 - BigQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207702/

相关文章:

firebase - 为什么 BigQuery 不显示 Firebase-Analytics 数据?

google-bigquery - 单独的 JSON 文件中的 Terraform Bigquery 表架构

sql - 如何计算/增加 MS SQL 选择中表列的当前出现次数

python - 如何在不耗尽内存的情况下从 sql 查询创建 Pandas 数据框?

sql - 旋转 1300 万条记录时,tempDB 在 SQL Server 中已满,旋转需要超过 28 小时

sql-server-2008 - 对于 SQL Server 2008 中长度为 13 位的 ID 号,我可以使用什么数据类型?

python - 如何仅从 Bigquery 客户端中的 insert_rows_from_dataframe 方法获取错误?

sql - Oracle - 将多个计数作为一个查询返回

java - Oracle 到 H2/hsqldb 等适配器

sql - 显示不带 order by 子句的 SQL 查询的顺序