【问题标题】:How to truncate a date to the first day of the month in Snowflake?如何在雪花中将日期截断为每月的第一天?
【发布时间】:2020-12-20 23:28:34
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    Snowflake 支持 date_trunc() 用于数据类型 DATETIMETIMESTAMP

    date_trunc('month', mydate)
    

    【讨论】:

    • 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)
      

      【讨论】:

        猜你喜欢
        • 2022-10-14
        • 1970-01-01
        • 2023-01-26
        • 2021-09-05
        • 2013-08-07
        • 1970-01-01
        • 2019-07-28
        • 2021-10-22
        • 1970-01-01
        相关资源
        最近更新 更多