【发布时间】:2022-10-14 05:43:48
【问题描述】:
我无法找到任何好的转换代码来获取 2014-02-17 into 2014-02-01,而不必使用连接和大量格式。
我想知道是否有人可以帮我找到一个很好的命令来实现这一点。谢谢!
【问题讨论】:
标签: sql datetime snowflake-cloud-data-platform date-arithmetic
我无法找到任何好的转换代码来获取 2014-02-17 into 2014-02-01,而不必使用连接和大量格式。
我想知道是否有人可以帮我找到一个很好的命令来实现这一点。谢谢!
【问题讨论】:
标签: sql datetime snowflake-cloud-data-platform date-arithmetic
Snowflake 支持 date_trunc() 数据类型 DATE、TIME 和 TIMESTAMP:
SELECT DATE_TRUNC(month, CURRENT_DATE()) AS first_day_of_month;
【讨论】:
这是另一种选择:
选择 TRUNCTIMESTAMPTOMONTH(CURRENT_DATE());
【讨论】:
听起来你正在使用字符串。如果是这种情况并且它们将始终采用“yyyy-MM-dd”格式,您可以只取前 8 个字符并添加“01”:
left(MyStringValue, 8) + '01'
如果您正在使用日期字段,我喜欢使用 datediff 从 0 获取月份的技巧,然后使用 dateadd 和 0 返回到月份的第一天:
dateadd(month, datediff(month, 0, MyDateValue), 0)
【讨论】: