2013-03-26 44 views
0

我想以這樣的方式來分割在SQL Server 2009-02-27 14:30:53它變成:如何使用SQL Server進行拆分?

Y  M D T 
----------------------- 
2009 02 27 14:30:53 

誰能幫我用「串」和「CHARINDEX」這樣做呢?

+2

我會建議使用['DatePart']( http://msdn.microsoft.com/en-us/library/ms174420.aspx)(或類似的快捷函數'Year','Month','Day'。) – mellamokb 2013-03-26 01:13:50

+2

此問題沒有顯示任何研究工作。 **做你的作業很重要**。告訴我們你發現了什麼,***爲什麼它不符合你的需求。這表明你已經花時間去嘗試幫助你自己了,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案。 [FAQ](http://stackoverflow.com/questions/how-to-ask)。 – Kermit 2013-03-26 01:19:09

+0

沒有先生,我在問這個問題之前做了一些研究,但說實話我只是一個初學者。其實我錯誤地問了我的問題。我收到了一列值{(2009-02-27 14:30:53),(2008-02-27 14:31:53)...........(2010-02-27 10:31:53)}我需要將該列分成4列(Y,M,D,T)。其實我解決了這個問題(但是我不太確定它是否可以或不是特別符合我的想法,然後我做了一些試驗和錯誤,並給出了正確的結果?)。 – 2013-03-26 01:44:30

回答

5

你應該能夠使用它使用DATEPART功能和convert of the date以下返回時間:

select 
    datepart(year, yourDate) y, 
    datepart(month, yourDate) m, 
    datepart(day, yourDate) d, 
    convert(char(8), yourdate, 108) t 
from yourtable 

SQL Fiddle with Demo

這也可以寫成使用YEARMONTHDAY功能:

select 
    year(yourDate) y, 
    month(yourDate) m, 
    day(yourDate) d, 
    convert(char(8), yourdate, 108) t 
from yourtable 

請參閱SQL Fiddle with Demo