SQL Server从现有日期列确定日期

时间:2018-04-13 14:48:00

标签: sql sql-server sql-server-2016

我试图通过查看列日期来确定日期的哪一天。是否可能,如果是这样,您如何查看列日期/引用该列,并确定它是哪一天?

目前的结果:

enter image description here

期望的结果:

enter image description here

测试代码:

 CREATE TABLE #Date 
 (
     IncidentDate DATE,
     [Day] VARCHAR(10)
 )

 INSERT INTO #Date (IncidentDate)
 VALUES ('20170803'), ('20170817'), ('20170831'), ('20170901'),
        ('20170905'), ('20170914'), ('20170908'), ('20170914'), 
        ('20171010'), ('20171020'), ('20171024'), ('20171027'),
        ('20171026'), ('20171024'), ('20171102'), ('20171106')

SELECT *
FROM #Date

5 个答案:

答案 0 :(得分:2)

您可以在sqlserver中使用 datename 功能。

  SELECT DATENAME(dw,'2018/04/13');

  Answer: Friday

琐事:今天是13日星期五。

答案 1 :(得分:2)

DATENAME函数将返回日期名称。

使用您的上述数据:

 SELECT   *
        , DATENAME(dw, IncidentDate) [DayOfWeek]
 FROM #Date 

答案 2 :(得分:2)

您可以在构建表格时使用DATENAME - 请先注意字符串的转换。

CREATE TABLE #Date (
 IncidentDate DATE,
 [Day] varchar(10)
 )

 INSERT INTO #Date
 (
     IncidentDate,
     Day
 )
 VALUES
 ('20170803', DATENAME(dw,CONVERT(CHAR(10), '20170803', 120)))


 SELECT *
 FROM #Date

outout

IncidentDate    Day
2017-08-03      Thursday

答案 3 :(得分:1)

你可以使用函数DATENAME,就像这样......

SELECT DATENAME(dw, IncidentDate)
FROM #Date

函数dw的第一个输入可以根据您想要离开日期的部分(月,日,季度,年等等)而变化。

更多信息here

答案 4 :(得分:1)

你的意思是这样的

 SELECT IncidentDate,DATENAME(dw,IncidentDate)
 FROM #Date

Dbfiddle here

可以找到解释here