2013-03-26 71 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