【问题标题】:converting datetime in sqlserver like yyyy-mm-dd hh:mi:ss to yyyy-mm-dd 23:59:59将 yyyy-mm-dd hh:mi:ss 等 sqlserver 中的日期时间转换为 yyyy-mm-dd 23:59:59
【发布时间】:2015-08-17 11:34:01
【问题描述】:

您好,我想像下面2015-05-12 23:59:59 那样转换日期时间。小时和秒应该像12:59:59这个。

例如:我想将今天的日期转换为如下2015-08-17 23:59:59

已编辑

对于 sql server 中的 GETDATE(),我会得到像这样的日期时间 2015-08-17 17:10:54.080 这个我想转换成 2015-08-17 23:59:59.080

【问题讨论】:

  • 将 2015-08-17 17:10:54.080 转换为 2015-08-17 23:59:59.080 是什么意思?这里的时代不同。这也与您请求不同格式的标头冲突
  • 嗨,我更新了我的 header.sorry 混淆@t-clausen.dk
  • 几乎总是,这是在解决错误的问题。在处理连续数据时,使用半开区间(包括起点,排他终点)几乎总是更好。计算“明天开始的午夜”而不是“今天的最后一刻”是微不足道的,如果您稍后更改数据类型(例如,使用 datetime2 时的一天的最后一刻),后者将不需要更改因精度而异,它们都与datetime) 不同

标签: sql sql-server date datetime


【解决方案1】:

似乎这个问题与格式无关。因此,这是获取当天最后一个时间戳的解决方案:

获取当天的最后一分钟:

SELECT dateadd(d, datediff(d, 0, getdate()), cast('23:59:59' as datetime))

返回:

2015-08-17 23:59:59.000

获取一天中最后可能的时间戳:

SELECT dateadd(d, datediff(d, 0, getdate()), cast('23:59:59:997' as datetime))
2015-08-17 23:59:59.997

【讨论】:

    【解决方案2】:

    SQL Server 2005 及更高版本

    SELECT CONVERT(VARCHAR(19), GETDATE(), 120) 
    

    SQL Server 2012 及更高版本

    SELECT FORMAT(GETDATE() , 'yyyy-MM-dd HH:mm:ss')
    

    两者都会返回:

    2015-08-17 12:42:25
    

    【讨论】:

    • 真的对这个答案投了反对票????您是否愿意发表评论以及我也许可以改进我的答案?
    【解决方案3】:

    您可以使用CASTTIME(0) 以下列格式返回您的时间: HH:mm:ss

    SELECT CAST('2015-08-17 12:59:59' AS TIME(0))
    

    输出

    12:59:59
    

    更正

    之前误解了您的问题,因此提供了如何仅获取时间,日期+时间格式如下:yyyy-MM-dd HH:mm:ss 您可以使用以下格式:

    SELECT CONVERT(CHAR(19), '2015-08-17 12:59:59.154', 20)
    

    输出

    2015-08-17 12:59:59
    

    【讨论】:

      【解决方案4】:

      你需要在这里使用convert(),试试下面的查询

      SELECT CONVERT(char(19), GetDate(),121)
      

      输出:

      2015-08-17 11:37:29
      

      【讨论】:

      • 不应该是CHAR(19)把最后一个.去掉吧。
      • 使用 120 代替 121 则问题解决,不需要毫秒
      • @ArunprasanthKV 已经解决了,你可以试试这个查询吗?我认为它没有提到显示毫秒。
      • 是的,我理解我的意思是你可以使用 120 而不是 121,因为 121 也给出毫秒,而 120 只返回 hh:mm:ss
      • @t-clausen.dk 感谢您的澄清,我已删除该评论
      猜你喜欢
      • 2013-10-19
      • 1970-01-01
      • 2023-03-15
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 2016-06-21
      • 1970-01-01
      相关资源
      最近更新 更多