将sqlserver中的日期时间转换为yyyy-mm-dd hh:mi:ss到yyyy-mm-dd 23:59:59

将sqlserver中的日期时间转换为yyyy-mm-dd hh:mi:ss到yyyy-mm-dd 23:59:59,sql,sql-server,date,datetime,Sql,Sql Server,Date,Datetime,您好,我想转换日期时间,如下所示2015-05-12 23:59:59。小时和秒应该是这样的12:59:59 Ex:我想转换今天的日期,如下所示2015-08-17 23:59:59 已编辑 对于sql server中的GETDATE(),我将获得如下日期时间:2015-08-17 17:10:54.080我要将此日期时间转换为2015-08-17 23:59:59.080 SELECT CONVERT(char(19), GetDate(),121) 输出: 2015-08-17 11:37

您好,我想转换日期时间,如下所示
2015-05-12 23:59:59
。小时和秒应该是这样的
12:59:59

Ex:我想转换今天的日期,如下所示
2015-08-17 23:59:59

已编辑


对于sql server中的GETDATE(),我将获得如下日期时间:2015-08-17 17:10:54.080我要将此日期时间转换为2015-08-17 23:59:59.080

SELECT CONVERT(char(19), GetDate(),121)
输出:

2015-08-17 11:37:29
您可以使用to
TIME(0)
what将以以下格式返回您的时间:
HH:mm:ss

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

12:59:59
2015-08-17 12:59:59

校正

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

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

12:59:59
2015-08-17 12:59:59
SQL Server 2005及更高版本 SQL Server 2012及更高版本 任何一方将返回:

2015-08-17 12:42:25

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

SELECT dateadd(d, datediff(d, 0, getdate()), cast('23:59:59' as datetime))
SELECT dateadd(d, datediff(d, 0, getdate()), cast('23:59:59:997' as datetime))
2015-08-17 23:59:59.997
要获取一天中的最后一分钟,请执行以下操作:

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

2015-08-17 23:59:59.000
要获取当天最后一个可能的时间戳,请执行以下操作:

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

消除最后一个
,不应该是
CHAR(19)
。用120代替121,问题就解决了,毫秒不是needed@ArunprasanthKV已解决,请尝试此查询好吗?我想它没有提到显示毫秒。是的,我明白了,我的意思是你可以使用120而不是121,因为121也给出毫秒,120只返回hh:mm:ss@t-clausen.dk感谢您的澄清我已经删除了该评论您将2015-08-17 17:10:54.080转换为2015-08-17 23:59:59.080是什么意思?这里的时代不同。这也与您请求不同格式的标题冲突。我更新了我的标题。抱歉造成混淆@t-clausen.dk几乎总是这样,这解决了错误的问题。在处理连续数据时,使用半开放区间(包括起点、终点)几乎总是更好的。计算“明天开始的午夜”而不是“今天的最后一刻”是很简单的,如果以后更改数据类型(例如,使用
datetime2
时一天的最后一刻取决于精度,并且没有一个与
datetime
相同),则后者不需要更改真的对这个答案投了反对票吗????你是否愿意留下评论,也许我可以改进我的答案呢?