【问题标题】:SQL Format date to YYY-MM-DD 00:00:00.000SQL 格式日期为 YYYY-MM-DD 00:00:00.000
【发布时间】:2018-06-05 08:49:27
【问题描述】:

我有多个日期,我想在 SELECT 中将小时、分钟、秒和毫秒设置为零。

例如:2017-10-10 15:23:28.603 变为 2017-10-10 00:00:00.000

到目前为止,我可以将所有内容都设置为零,除了 Hours。

dateadd(hour, datepart(hour,getdate()),CAST(convert(varchar(20),getdate(),112) as datetime)) AS 'Date', 

Gives : 2017-10-10 15:00:00.000, 如何摆脱时间呢?

【问题讨论】:

    标签: sql-server date casting format


    【解决方案1】:

    只需投射到日期并返回

    SELECT GETDATE(), CAST(CAST(GETDATE() AS date) AS datetime)
    

    给予

    2018-06-05 10:53:41.937    2018-06-05 00:00:00.000
    

    【讨论】:

    • 我收到此错误:“字符串或二进制数据将被截断”
    • 然后发布您的真实代码,因为您无法使用我的代码得到错误:没有字符串或二进制数据
    • @Benoît 在您的问题中添加一些示例数据(作为文本),这些数据会产生您的错误。
    • 听起来错误是从 T-SQL 的不同部分发生的;不是@gbn 的解决方案(就像他说的那样,它不能产生那个错误,因为date(time) 数据类型不能被截断)。
    • 我将尝试添加一些示例数据,但查询有 500 行长,我试图使其更易于解释。
    猜你喜欢
    • 2015-02-03
    • 2020-08-28
    • 2019-07-19
    • 1970-01-01
    • 2014-12-02
    • 2019-08-25
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多