Внимание: Другие ответы работают только на серверах SQL с английской конфигурацией!Используйте SET DATEFIRST 7
, чтобы DATEPART(DW, ...)
вернул 1 для воскресенья и 7 для субботы.
Вот версия, которая не зависит от локальной настройки и не требует использования:
CREATE FUNCTION [dbo].[fct_IsDateWeekend] ( @date DATETIME )
RETURNS BIT
AS
BEGIN
RETURN CASE WHEN DATEPART(DW, @date + @@DATEFIRST - 1) > 5 THEN 1 ELSE 0 END;
END;
Если вы не хотите использовать функцию, просто используйте это в вашем операторе SELECT:
CASE WHEN DATEPART(DW, YourDateTime + @@DATEFIRST - 1) > 5 THEN 'Weekend' ELSE 'Weekday' END