我正在尝试选择时间戳字段 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/