将int MMDDYYYY转换为日期时间MM-DD-YYYY

时间:2015-05-12 00:18:32

标签: sql-server date datetime type-conversion sqldatatypes

我想 将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)

3 个答案:

答案 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)

SQL Fiddle

结果是 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