将日期转换为SQL Server中的星期几

n3h0vuf2  于 2022-12-17  发布在  SQL Server
关注(0)|答案(2)|浏览(107)

我想在MS Access中转换SQL查询到SQL Server。此查询是关于将日期转换为星期几。请告知。
MS访问权限:

UPDATE Contact_Hist 
SET WK_DAY = weekdayname(weekday(cdate(mid(date_id,5,2) & "/" & right(date_id,2) & "/" & left(date_id,4))));

例如,DATE_ID = 20140703符合表(Contact_Hist),并希望转换为星期几,即'Thursday'

kupeojn6

kupeojn61#

您应该使用SQL Server的DatePart()函数:

DatePart(weekday, Cast('20140703' AS date))

这将返回1(星期一)和7(星期日)之间的整数。
土耳其
DatePart()返回值[integer]的解释方式由SQL Server的SET DATEFIRST设置(或默认配置)决定。即,返回的1是否为Monday,2是否为Monday,依此类推。
土耳其
土耳其
要获取星期几的名称,请使用DateName()函数。

DateName(weekday, Cast('20140703' AS date))

为了便于参考,DatePart()DateName()都将“date”(即,timedatesmalldatetimedatetimedatetime2datetimeoffset 值)作为第二个参数。SQL Server将隐式地将日期字符串转换为日期,因此CAST('20140703' AS date)不是必需的。
土耳其

mo49yndu

mo49yndu2#

在MS SQL Server 2012中,您可以执行以下操作并恢复“星期五”:

SELECT DATENAME ( weekday , '20140704' )

如以下SQLFiddle所示:http://sqlfiddle.com/#!6/fc24a/8
那么做:

UPDATE Contact_Hist SET WK_DAY = DATENAME ( weekday , date_id )

相关问题