我正在使用SQL 2008 R2。我们有一个第三方软件,它将一个字符串传递给存储的proc。字符串是以下格式的日期:
2015-05-27 11:59pm我无法访问此格式,并且无法更改它。我需要将此字符串转换为SQL在存储的Proc中正确使用的适当格式。它的问题在于,它忽略了日期的小时和最小部分。
我想要完成的事情的例子:
2015-05-27 11:59pm = 2015-05-27 23:59:00.000
2015-05-27 01:15am = 2015-05-27 01:15:00.000我试过:
CONVERT(VARCHAR(24),'2015-05-27 11:59pm',121)将其转换为:
2015-05-27 11:59PM我尝试过将“2015-05-27 11:59”转换为“日期时间”:
2015-05-27 00:00:00.000有没有办法转换字符串,保留小时和分钟的部分?
发布于 2015-05-27 13:41:30
这对我来说很管用:
SELECT CONVERT(datetime, '2015-05-27 11:59pm', 121)发布于 2015-05-27 13:44:15
这句话:
CONVERT(VARCHAR(24), '2015-05-27 11:59pm', 121)是不对的它接受日期字符串,使用内部设置将其转换为日期/时间。然后将该日期/时间转换为字符串。尝试将值直接转换为datetime:
convert(datetime, @param, 121)但是,我认为您的存储过程最好只使用日期时间参数,而不是字符串。
发布于 2015-05-27 13:41:55
试试这个:
SELECT CONVERT(datetime, '2015-05-27 11:59pm', 0)输出:
2015-05-27 23:59:00.000https://stackoverflow.com/questions/30484193
复制相似问题