Подскажите как узнать, день недели?

AlexPiv
Дата: 08.09.2006 12:51:36
Подскажите как узнать, день недели?
Дана дата ’08.09.2006’ узнать день недели.
Результат = Пятница
DATEPART
Дата: 08.09.2006 12:52:35
DATEPART и при этом не забывать про SET DATEFIRST
RENaissance
Дата: 08.09.2006 13:02:04

???
set language русский
select datename(dw, '20060908')
set language us_english



Posted via ActualForum NNTP Server 1.3

AlexPiv
Дата: 08.09.2006 13:20:39
[quot RENaissance]
???
set language русский
select datename(dw, '20060908')
set language us_english


РАБОТАЕТ КАК ЕЩЕ СДЕЛАТЬ СОКРАЩЕННЫЙ ФОРМАТ?
т.е Пятница =Пт
Суббота=Сб
Сокращенный формат дня недели?
Александр Волок (def1983)
Дата: 08.09.2006 13:29:30
AlexPiv
[quot RENaissance]
???
set language русский
select datename(dw, '20060908')
set language us_english


РАБОТАЕТ КАК ЕЩЕ СДЕЛАТЬ СОКРАЩЕННЫЙ ФОРМАТ?
т.е Пятница =Пт
Суббота=Сб
Сокращенный формат дня недели?


используя CASE
RENaissance
Дата: 08.09.2006 13:38:07

To AlexPiv
Форматированием выходных данных для отображения должно заниматься клиентское приложение, а не сервер.


Posted via ActualForum NNTP Server 1.3

iap
Дата: 08.09.2006 19:27:43
SELECT
 CASE (DATEPART(WEEKDAY,GETDATE())+@@DATEFIRST-2)%7
  WHEN 0 THEN 'понедельник'
  WHEN 1 THEN 'вторник'
  WHEN 2 THEN 'среда'
  WHEN 3 THEN 'четверг'
  WHEN 4 THEN 'пятница'
  WHEN 5 THEN 'суббота'
  WHEN 6 THEN 'воскресенье'
 END;
iap
Дата: 08.09.2006 20:11:55
Так лучше:
SELECT
 CASE (DATEPART(WEEKDAY,GETDATE())+@@DATEFIRST)%7
  WHEN 2 THEN 'понедельник'
  WHEN 3 THEN 'вторник'
  WHEN 4 THEN 'среда'
  WHEN 5 THEN 'четверг'
  WHEN 6 THEN 'пятница'
  WHEN 0 THEN 'суббота'
  WHEN 1 THEN 'воскресенье'
 END;
Александр Волок (def1983)
Дата: 09.09.2006 19:14:14
iap
Так лучше:
SELECT
 CASE (DATEPART(WEEKDAY,GETDATE())+@@DATEFIRST)%7
  WHEN 2 THEN 'понедельник'
  WHEN 3 THEN 'вторник'
  WHEN 4 THEN 'среда'
  WHEN 5 THEN 'четверг'
  WHEN 6 THEN 'пятница'
  WHEN 0 THEN 'суббота'
  WHEN 1 THEN 'воскресенье'
 END;


Хмм, а почему бы явно не указать первый день недели?

SET DATEFIRST 1
SELECT
 CASE (DATEPART(WEEKDAY,GETDATE()))
  WHEN 1 THEN 'понедельник'
  WHEN 2 THEN 'вторник'
  WHEN 3 THEN 'среда'
  WHEN 4 THEN 'четверг'
  WHEN 5 THEN 'пятница'
  WHEN 6 THEN 'суббота'
  WHEN 7 THEN 'воскресенье'
 END;
iap
Дата: 09.09.2006 19:48:12
def1983
iap
Так лучше:
SELECT
 CASE (DATEPART(WEEKDAY,GETDATE())+@@DATEFIRST)%7
  WHEN 2 THEN 'понедельник'
  WHEN 3 THEN 'вторник'
  WHEN 4 THEN 'среда'
  WHEN 5 THEN 'четверг'
  WHEN 6 THEN 'пятница'
  WHEN 0 THEN 'суббота'
  WHEN 1 THEN 'воскресенье'
 END;


Хмм, а почему бы явно не указать первый день недели?

SET DATEFIRST 1
SELECT
 CASE (DATEPART(WEEKDAY,GETDATE()))
  WHEN 1 THEN 'понедельник'
  WHEN 2 THEN 'вторник'
  WHEN 3 THEN 'среда'
  WHEN 4 THEN 'четверг'
  WHEN 5 THEN 'пятница'
  WHEN 6 THEN 'суббота'
  WHEN 7 THEN 'воскресенье'
 END;

А зачем это делать, если можно не делать?