将日期时间列拆分为年,月和周

时间:2013-10-02 14:29:49

标签: sql sql-server sql-server-2008

我想拆分一个datetime列,以便年份和月份在select语句输出中都有自己的列。我还希望在一年中的一周中有一个专栏,而不是具体的日期。

基本上,我希望在我的select语句输出中显示单独的year,month和week列。

3 个答案:

答案 0 :(得分:10)

尝试使用DatePart功能,如下所示:

select
  datepart(year,Mydate), 
  datepart(month,Mydate),
  datepart(week,Mydate)
From
  MyTable

注意:如果您需要按ISO 8601标准计算周数,则需要使用datepart(iso_week,Mydate)

您还可以查看DateName函数

select
  datename(month,Mydate)
From
  MyTable

答案 1 :(得分:0)

检查这个

select datepart(Month,DateColumn) Mnth,datename(Month,DateColumn) MnthName,datepart(Year,DateColumn) Year1,((day(DateColumn)-1) / 7) + 1 week from dbo.Table

答案 2 :(得分:0)

这是另一种方式。使用SQL Server YEAR()和MONTH()函数。对于一周,我使用datepart(周,Mydate),如@DMK所述。

SELECT YEAR(MyDate), MONTH(MyDate), DATEPART(WEEK,Mydate) From YourTable