将日期列转换为周数,日期,月份,年份

时间:2017-04-05 06:26:54

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

我在数据库中有一个日期列Time,我希望将其转换为4个新列

  1. 我在test数据库

    上使用这样的东西
    SELECT DATEPART(wk,`Time`), DATEPART(dd,`Time`),DATEPART(mm,`Time`),DATEPART(wk,`yyyy`), FROM `Test` WHERE 1
    

    它有什么问题?

4 个答案:

答案 0 :(得分:0)

您获取年份的语法错误以及From子句之前的额外(,)

尝试如下:

 <HEUREKA>
  <CATEGORY>
    <CATEGORY_ID>971</CATEGORY_ID>
    <CATEGORY_NAME>Auto-moto</CATEGORY_NAME>
  </CATEGORY>
  <CATEGORY>
   <CATEGORY_ID>881</CATEGORY_ID>
   <CATEGORY_NAME>Alkohol testery</CATEGORY_NAME>
   <CATEGORY_FULLNAME>Heureka.cz | Auto-moto | Alkohol testery</CATEGORY_FULLNAME>
   </CATEGORY>
</HEUREKA>

答案 1 :(得分:0)

在Sql server中,你不要用`包装你的标识符。

但是,由于Time是sql server中的数据类型,我已用[]包装它: 请尝试此查询:

SELECT DATEPART(Week,[Time]) As [Week],
       DATEPART(Day,[Time]) As [Day],
       DATEPART(Month,[Time]) As [Month],
       DATEPART(Year,[Time]) As [Year] 
FROM Test

此外,在select子句中的最后一个元素之后还有一个额外的逗号, 并且Where子句没有意义,所以我已将其删除。

答案 2 :(得分:0)

select datepart(week,GETDATE()) as [week]
        , datepart(DAY,GETDATE()) as [DAY]
        , datepart(month,GETDATE()) as [month]
         ,datepart(year,GETDATE()) as [year]

答案 3 :(得分:0)

您还可以使用you chose point no. 9 with coordinates: [x:0.80, y:0.64] YEARMONTH来简化它:

DAY