在 sql 服务器 2016 中将特定 12 小时格式类型转换为 24 小时格式类型的查询
Query to Convert a specific 12 hour format type to 24 hour format type in sql server 2016
我们有一个案例,用户编辑的时间格式为 3/2/20 3:30P
(其中 P 表示 P.m。)我正在尝试将其转换为 24 小时格式以便能够将连接条件与标准列一起使用,例如 2020-03-02 15:30:0000
例如3/2/20 3:30P
到 2020-03-02 15:30:0000
在 Whosebug 中的一个答案中尝试了以下方法,但没有成功:
SELECT CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0)
-- Concatenate in required format
SELECT CONVERT(VARCHAR(10), CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0), 101)
+ ' '+ CONVERT(VARCHAR(5),CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0), 108)
你可以这样做:
DECLARE @dates VARCHAR(255) = '3/2/20 3:30P'
SELECT @dates AS Old_Date,
CONVERT(DATETIME, @dates + RIGHT(RIGHT(@dates, 1) + 'm', 1)) AS New_Date
假设 格式为 M/d/yy h:mmA (or P)
那么我将使用样式代码 22
,它用于 mm/dd/yy hh:mi:ss AM (or PM)
,这样无论语言设置如何都有效:
SELECT CONVERT(datetime2(0),V.YourDate + 'M',22)
FROM (VALUES('3/2/20 3:30P'))V(YourDate);
我们有一个案例,用户编辑的时间格式为 3/2/20 3:30P
(其中 P 表示 P.m。)我正在尝试将其转换为 24 小时格式以便能够将连接条件与标准列一起使用,例如 2020-03-02 15:30:0000
例如3/2/20 3:30P
到 2020-03-02 15:30:0000
在 Whosebug 中的一个答案中尝试了以下方法,但没有成功:
SELECT CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0)
-- Concatenate in required format
SELECT CONVERT(VARCHAR(10), CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0), 101)
+ ' '+ CONVERT(VARCHAR(5),CONVERT(DATETIME, '10/1/2013 6:39:04 PM', 0), 108)
你可以这样做:
DECLARE @dates VARCHAR(255) = '3/2/20 3:30P'
SELECT @dates AS Old_Date,
CONVERT(DATETIME, @dates + RIGHT(RIGHT(@dates, 1) + 'm', 1)) AS New_Date
假设 格式为 M/d/yy h:mmA (or P)
那么我将使用样式代码 22
,它用于 mm/dd/yy hh:mi:ss AM (or PM)
,这样无论语言设置如何都有效:
SELECT CONVERT(datetime2(0),V.YourDate + 'M',22)
FROM (VALUES('3/2/20 3:30P'))V(YourDate);