0

我们有一种情况,用户编辑的时间采用格式3/2/20 3:30P(其中 P 表示 Pm),我试图将其转换为 24 小时格式,以便能够使用标准列的连接条件,例如2020-03-02 15:30:0000

例如3/2/20 3:30P_2020-03-02 15:30:0000

在 StackOverflow 的其中一个答案中尝试了以下方法,但没有奏效:

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) 
4

2 回答 2

0

你可以做 :

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
于 2020-03-13T15:51:56.860 回答
0

假设格式是,M/d/yy h:mmA (or P)那么我将使用样式代码22,即 for 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);
于 2020-03-13T15:54:46.143 回答