如何选择数字字符串作为有效的DATE

时间:2014-07-30 22:04:40

标签: sql sql-server date select case

CUSTOMER(ID,NAME,ENTRY_DT)
         1,Dave,8312012
         2,Tom,11262013
         3,Iva,3312012
         .
         . 
         .

因此ENTRY_DT列具有MDDYYYY或MMDDYYYY格式的数字字符串值。 我想写一个简单的选择查询,以便ENTRY_DT显示

8/31/2012
11/26/2013
3/31/2012
.
.
.

5 个答案:

答案 0 :(得分:2)

DECLARE @TABLE TABLE (Int_Date INT)

INSERT INTO @TABLE VALUES 
(8312012),
(11262013),
(3312012)


SELECT  LEFT(RIGHT('00000000'+ CAST(Int_Date AS VARCHAR(10)), 8), 2) +'/' 
        +REVERSE(SUBSTRING(REVERSE(Int_Date), 5, 2)) + '/' + RIGHT(Int_Date, 4)
FROM @TABLE

结果

08/31/2012
11/26/2013
03/31/2012

答案 1 :(得分:1)

Select covert(date,right(('00000000' + entry_dt),8),101)

---如果是SQL Server 2008或更高版本

将日期替换为日期时间(如果是2005年或以下)。

答案 2 :(得分:0)

select id, name, CONVERT(datetime, entry_dt, 101)

答案 3 :(得分:0)

SELECT LEFT(右(' 00000000' + CAST(ENTRY_DT AS VARCHAR(10)),8),2)+' /' + REVERSE(SUBSTRING(REVERSE(ENTRY_DT) ),5,2))+' /' + REVERSE(SUBSTRING(REVERSE(ENTRY_DT),1,4))来自#CUSTOMER

答案 4 :(得分:0)

SELECT SUBSTRING(右('00000000'+ ENTRY_DT,8),1,2)+'/'+ SUBSTRING(右('00000000'+ ENTRY_DT,8),3,2)+'/'+ SUBSTRING(右('00000000'+ ENTRY_DT,8),5,4)来自#CUSTOMER