[英]Is it possible to convert a column from string to datetime type in a SQL statement?
[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.