簡體   English   中英

SQL int轉換為日期時間的字符串

[英]SQL int to string to datetime

我有整數日期。

將整數轉換為日期時間的最干凈方法是什么?

我用這種凌亂的方式:

CONVERT(DATETIME,  cast(source.Day as varchar(2)) + '/' + cast(source.Month as varchar(2)) + '/' + cast(source.Year as varchar(2)), 3),

您可以使用DATEFROMPARTS函數:

SELECT DATEFROMPARTS ( 2010, 12, 31 ) AS Result;

請注意,僅在2012+版本中可用。

這是你可以做到的

   Declare @date date, 
        @year INT = 2014,
        @Month INT = 10,
        @DateDay INT = 12,
        @parseDate char(20)

select @date = CONVERT(date, 
                CAST( Cast(@Year as char(4))
                         + Cast(@Month as char(2)) +
                          cast(@DateDay as char(2))  AS CHAR(12)), 112)
select @date

注意 :我不處理NULL情況。

嘗試這個:

select CONVERT (datetime,convert(char(8),yourvalue))

在RT解決方案中工作可能會起作用

CREATE TABLE DATA(yr int, mth int, dy int);
INSERT INTO DATA
VALUES (2014,10,15);

SELECT
      CONVERT (DATETIME,
                CONVERT(char(4), yr) + 
                CONVERT(char(2), mth) + 
                CONVERT(char(2), dy)
       ) as Result
FROM DATA

這仍然有點混亂,並假設使用4位數字的年整數。

SQL小提琴在這里: http ://sqlfiddle.com/#!6/cbf62/2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM