我有一个datetime列,其中日期存储为yyyy-dd-MM HH:mm:ss
,但我想将其更改为yyyy-MM-dd HH:mm:ss
。
例如, 2019年11月9日应为 2019-11-09 ,但其显示时间为2019-09-11。
我尝试过CAST / CONVERT,但是他们没有更改格式。
答案 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