簡體   English   中英

是否可以在SQL Server中將字符串列轉換為日期時間?

[英]Is it possible to convert string column to datetime in sql server?

我有一個表CUSTOMERS(ID,NAME,REGISTRATION_DT)。 它具有以下值-

1,亞歷克斯093013
2,彼得012512
瑪麗3,041911

我希望能夠選擇REGISTRATION_DT列並將值重新調整為DATETIME。 是否有任何查詢將REGISTRATION_DT列中的現有varchar數據類型轉換為datetime,並且所有值都為datetime格式? 現有的varchar值采用ddmmyy格式。

我正在使用sql-server 2008

下面的示例要求年份始終為2000。您還需要將字符串YourTable更改為要查詢的表。

SELECT
      Id
     ,Name
     --Convert To Date Time
     ,CONVERT(datetime,
                -- Add 20 to the final 2 numbers to represent the year i.e 2013
                ('20' + SUBSTRING(REGISTRATION_DT,5,2)
                    + '-' + 
                -- the first 2 numbers to represent the Month i.e 09
                SUBSTRING(REGISTRATION_DT,1,2)
                    + '-' + 
                -- the middle 2 numbers to represent the day i.e 30
                SUBSTRING(REGISTRATION_DT,3,2))) 
     as REGISTRATION_DT
from YourTable

唯一的方法是將varchar轉換為日期。 嘗試類似

SELECT CONVERT(DATE, LEFT(REGISTRATION_DT, 2) + '/'  
                       + LEFT(RIGHT(REGISTRATION_DT, 4), 2)
                       + '/20' + RIGHT(REGISTRATION_DT, 2))

此處為示例SQL FIDDLE

不過,更重要的是,您必須考慮更改在表中保存REGISTRATION_DT字段的方式。

嘗試這個...

select ID, NAME ,CAST((substring(REGISTRATION_DT,5,6)+
substring(REGISTRATION_DT,1,4)) as datetime) 
as Registration_Date  from CUSTOMERS

例如此處: http : //sqlfiddle.com/#!3/d41d8/32154/0

暫無
暫無

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

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