Получите день недели в SQL Server 2005/2008

Другим продуктом, который может обработать это изящно, является SmartAssembly, в SmartAssembly.com . Этот продукт будет, в дополнение к слиянию всех зависимостей в единственный DLL, (дополнительно) запутать Ваш код, удалить дополнительные метаданные для сокращения получающегося размера файла, и может также на самом деле оптимизировать IL для увеличения производительности во время выполнения. Существует также некоторая глобальная обработка исключений / создание отчетов о функции, это добавляет к Вашему программному обеспечению (при желании), что я не не торопился для понимания, но мог быть полезным. Я полагаю, что это также имеет API командной строки, таким образом, можно сделать его частью процесса сборки.

349
задан a_horse_with_no_name 18 July 2019 в 05:08
поделиться

2 ответа

Используйте DATENAME или DATEPART :

SELECT DATENAME(dw,GETDATE()) -- Friday
SELECT DATEPART(dw,GETDATE()) -- 6
667
ответ дан 23 November 2019 в 00:26
поделиться

Несмотря на то, что ответ SQLMenace был принят, есть одна важная опция SET , о которой вы должны знать, что

SET DATEFIRST

DATENAME вернет правильный дата имя , но не то же самое значение DATEPART , если первый день недели был изменен, как показано ниже.

declare @DefaultDateFirst int
set @DefaultDateFirst = @@datefirst
--; 7 First day of week is "Sunday" by default
select  [@DefaultDateFirst] = @DefaultDateFirst 

set datefirst @DefaultDateFirst
select datename(dw,getdate()) -- Saturday
select datepart(dw,getdate()) -- 7

--; Set the first day of week to * TUESDAY * 
--; (some people start their week on Tuesdays...)
set datefirst 2
select datename(dw,getdate()) -- Saturday
--; Returns 5 because Saturday is the 5th day since Tuesday.
--; Tue 1, Wed 2, Th 3, Fri 4, Sat 5
select datepart(dw,getdate()) -- 5 <-- It's not 7!
set datefirst @DefaultDateFirst
94
ответ дан 23 November 2019 в 00:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: