我想 将MMDDYYYY(例如-5112012)转换为日期时间MM-DD-YYYY 然后将日期时间MM-DD-YYYY转换为YYYY-MM-DD 或者如果上述步骤可以在一个步骤中完成,将MMDDYYYY转换为日期时间YYYY-MM-DD?
作为参考,早先我使用以下语法将YYYYMMDD转换为日期时间YYYY-MM-DD:
declare @date int;
set @date = 19900511
select CONVERT(datetime, convert(varchar(8),@date), 103)
答案 0 :(得分:2)
DECLARE @date INT;
SET @date = 5112012
SELECT CONVERT(DATETIME, LEFT('0' + CONVERT(VARCHAR(8), @date), 2) + '-' + SUBSTRING( '0' + CONVERT(VARCHAR(8), @date), 3, 2) + '-' + RIGHT(@date,4))
保释水,现在修复泄漏;将存储从int更改为正确的日期或日期时间:)
答案 1 :(得分:1)
declare @date int
set @date = 19900511
select CONVERT(CHAR(10), CONVERT(datetime, convert(varchar(8),@date), 103), 21)
结果是 1990-05-11
答案 2 :(得分:-1)
convert( datetime,
case when @MMDDYYYY = 0 then
null
else
substring(convert( varchar(9), 800000000 + @MMDDYYYY ) , 2, 2)
+ '/' + substring(
convert( varchar(9), 800000000 + @MMDDYYYY ) , 4, 2)
+ '/' + right(@MMDDYYYY,4) end ) as New_Date