SQL Server从现有日期列确定日期
我试图通过查看列日期来确定日期是哪一天。是否可能,如果可能,您如何查看列日期/引用列,并确定它是哪一天 目前的结果: 预期结果: 测试代码:SQL Server从现有日期列确定日期,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,我试图通过查看列日期来确定日期是哪一天。是否可能,如果可能,您如何查看列日期/引用列,并确定它是哪一天 目前的结果: 预期结果: 测试代码: CREATE TABLE #Date ( IncidentDate DATE, [Day] VARCHAR(10) ) INSERT INTO #Date (IncidentDate) VALUES ('20170803'), ('20170817'), ('20170831'), ('20170901'),
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
您可以在sqlserver中使用datename函数
SELECT DATENAME(dw,'2018/04/13');
Answer: Friday
琐事:今天是13号星期五。DATENAME函数将返回日期的名称 使用您的上述数据:
SELECT *
, DATENAME(dw, IncidentDate) [DayOfWeek]
FROM #Date
您可以在构建表时使用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
出局
IncidentDate Day
2017-08-03 Thursday
您可以使用函数
DATENAME
,如下所示
SELECT DATENAME(dw, IncidentDate)
FROM #Date
函数dw
的第一个输入可以根据您希望从日期中获取的日期部分(月、日、季度、年等)而变化
更多信息你的意思是这样的
SELECT IncidentDate,DATENAME(dw,IncidentDate)
FROM #Date
小提琴
有关说明,请参见使用日期名称。由于此时的每个答案都使用日期快捷方式,我建议您阅读本文。这些捷径让人很痛苦。该博客链接已重定向到此链接。谢谢你,肖恩。我可以不必对日期进行编码就得到日期吗?我可以引用IncidentDate列吗?谢谢你的帮助!