如何将日期时间列格式从yyyy-dd-MM HH:mm:ss转换为yyyy-MM-dd HH:mm:ss

时间:2019-11-11 10:42:53

标签: sql-server datetime datetime-format

我有一个datetime列,其中日期存储为yyyy-dd-MM HH:mm:ss,但我想将其更改为yyyy-MM-dd HH:mm:ss

例如, 2019年11月9日应为 2019-11-09 ,但其显示时间为2019-09-11。

我尝试过CAST / CONVERT,但是他们没有更改格式。

4 个答案:

答案 0 :(得分:0)

尝试一下:

select convert(varchar, getdate(), 23)

declare @t date='09 Nov 2019'
select convert(varchar, @t, 23)

输出:-

2019-11-09

日期格式120

select convert(varchar, getdate(), 120)

输出:

2019-11-11 16:46:26

答案 1 :(得分:0)

您可以使用以下格式:

SELECT CONVERT(DATE, @YourDate, 106)

工作查询:

SELECT CONVERT(DATE, '09 Nov 2019', 106) -- it will return 2019-11-09

如果您期望使用yyyy-MM-dd HH:mm:ss格式的结果,则

SELECT CONVERT(VARCHAR(19), CONVERT(DATETIME, '09 Nov 2019', 106), 120) -- will result 2019-11-09 00:00:00

答案 2 :(得分:0)

您应该更改数据库的DEFAULT_LANGUAGE格式

尝试:

USE [master]
GO
EXEC sys.sp_configure N'default language', N'0'
GO
RECONFIGURE WITH OVERRIDE
GO
ALTER LOGIN [myuser] WITH DEFAULT_LANGUAGE=[us_english]
GO

如有必要,请以您喜欢的语言更改[us_english],但如果您的数据库已被使用,请保持满腹……。

答案 3 :(得分:0)

感谢您的帮助。它为我寻找的正确方向指明了方向。

我的解决方法是(可能是错误的,但是可行)...

,SUBSTRING(CONVERT(char(8), [LeadSentTime], 112), 1, 4) + '-' + SUBSTRING(CONVERT(char(8), [LeadSentTime], 112), 7, 2) + '-'  + SUBSTRING(CONVERT(char(8), [LeadSentTime], 112), 5, 2) + ' ' +
  CONVERT(char(12), [LeadSentTime], 14)

这给出了所需的结果-2019-11-09 10:41:55而不是2019-09-11 10:41:55