我有一个datetime列,其中日期存储为yyyy-dd-MM HH:mm:ss
,但我想将其更改为yyyy-MM-dd HH:mm:ss
。
例如, 2019年11月9日应为 2019-11-09 ,但其显示时间为2019-09-11。
我尝试过CAST / CONVERT,但是他们没有更改格式。
我有一个datetime列,其中日期存储为yyyy-dd-MM HH:mm:ss
,但我想将其更改为yyyy-MM-dd HH:mm:ss
。
例如, 2019年11月9日应为 2019-11-09 ,但其显示时间为2019-09-11。
我尝试过CAST / CONVERT,但是他们没有更改格式。
尝试一下:
select convert(varchar,getdate(),23)
declare @t date='09 Nov 2019'
select convert(varchar,@t,23)
输出:-
2019-11-09
日期格式120
select convert(varchar,120)
输出:
2019-11-11 16:46:26
,
您可以使用以下格式:
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,106),120) -- will result 2019-11-09 00:00:00
,
您应该更改数据库的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],但如果您的数据库已被使用,请保持满腹……。
,感谢您的帮助。它为我寻找的正确方向指明了方向。
我的解决方法是(可能是错误的,但是可行)...
,SUBSTRING(CONVERT(char(8),[LeadSentTime],112),1,4) + '-' + SUBSTRING(CONVERT(char(8),7,2) + '-' + SUBSTRING(CONVERT(char(8),5,2) + ' ' +
CONVERT(char(12),14)
这给出了所需的结果-2019-11-09 10:41:55而不是2019-09-11 10:41:55