【问题标题】:How to truncate a date to the first day of the month in Snowflake?如何在 Snowflake 中将日期截断为该月的第一天?
【发布时间】:2022-10-14 05:43:48
【问题描述】:

我无法找到任何好的转换代码来获取 2014-02-17 into 2014-02-01,而不必使用连接和大量格式。 我想知道是否有人可以帮我找到一个很好的命令来实现这一点。谢谢!

【问题讨论】:

    标签: sql datetime snowflake-cloud-data-platform date-arithmetic


    【解决方案1】:

    Snowflake 支持 date_trunc() 数据类型 DATETIMETIMESTAMP

    SELECT DATE_TRUNC(month, CURRENT_DATE()) AS first_day_of_month;
    

    【讨论】:

    • GMB 的答案是最合适的,我也分享了您可以使用的整个 SQL select date_trunc('MONTH', to_date('2014-02-17')) as FIRST DAY MONTH;
    【解决方案2】:

    这是另一种选择:

    选择 TRUNCTIMESTAMPTOMONTH(CURRENT_DATE());

    【讨论】:

      【解决方案3】:

      听起来你正在使用字符串。如果是这种情况并且它们将始终采用“yyyy-MM-dd”格式,您可以只取前 8 个字符并添加“01”:

      left(MyStringValue, 8) + '01'
      

      如果您正在使用日期字段,我喜欢使用 datediff 从 0 获取月份的技巧,然后使用 dateadd 和 0 返回到月份的第一天:

      dateadd(month, datediff(month, 0, MyDateValue), 0)
      

      【讨论】:

        猜你喜欢
        • 2020-12-20
        • 2023-01-26
        • 1970-01-01
        • 2017-07-06
        • 2015-09-09
        • 1970-01-01
        • 2021-01-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多