Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 день недели  [new]
рссс
Guest
Есть ли в 2005 MSSQL-е метод, с помощью которого имея дату можно было бы определить какой день недели соответствует этой дате в календаре?
12 ноя 08, 10:47    [6427288]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
Добрый Э - Эх
Guest
В поиск
12 ноя 08, 10:49    [6427303]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
Белов Владимир
Member

Откуда: Москва
Сообщений: 1716
Вполне возможно, Вам поможет (если я Вас правильно понял)

select datepart(dw, getdate())
12 ноя 08, 10:49    [6427308]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
select datename(weekday, getdate()) as result

result
------------------------------
Wednesday

(1 row(s) affected)
12 ноя 08, 10:53    [6427334]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
iap
Member

Откуда: Москва
Сообщений: 46983
SELECT
 CASE DATEDIFF(DAY,0, GETDATE())%7
  WHEN 0 THEN 'Понедельник'
  WHEN 1 THEN 'Вторник'
  WHEN 2 THEN 'Среда'
  WHEN 3 THEN 'Четверг'
  WHEN 4 THEN 'Пятница'
  WHEN 5 THEN 'Суббота'
  WHEN 6 THEN 'Воскресенье'
 END [День недели]
12 ноя 08, 10:56    [6427352]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
iap
Member

Откуда: Москва
Сообщений: 46983
Паганель
select datename(weekday, getdate()) as result

result
------------------------------
Wednesday

(1 row(s) affected)
+1
12 ноя 08, 10:58    [6427367]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
Ziks
Member

Откуда: Киев
Сообщений: 178
set language russian
select datename(weekday, getdate()) as result

а так еще прикольней ))
12 ноя 08, 11:16    [6427487]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
iap
Member

Откуда: Москва
Сообщений: 46983
Ziks
set language russian
select datename(weekday, getdate()) as result

а так еще прикольней ))
А у меня понимает только так:
SET LANGUAGE русский
12 ноя 08, 11:41    [6427717]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
iap
SELECT
 CASE DATEDIFF(DAY,0, GETDATE())%7
  WHEN 0 THEN 'Понедельник'
  WHEN 1 THEN 'Вторник'
  WHEN 2 THEN 'Среда'
  WHEN 3 THEN 'Четверг'
  WHEN 4 THEN 'Пятница'
  WHEN 5 THEN 'Суббота'
  WHEN 6 THEN 'Воскресенье'
 END [День недели]

Круто.... значит всё началось в понедельник
12 ноя 08, 12:08    [6427952]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
iap
SELECT
 CASE DATEDIFF(DAY,0, GETDATE())%7
  WHEN 0 THEN 'Понедельник'
  WHEN 1 THEN 'Вторник'
  WHEN 2 THEN 'Среда'
  WHEN 3 THEN 'Четверг'
  WHEN 4 THEN 'Пятница'
  WHEN 5 THEN 'Суббота'
  WHEN 6 THEN 'Воскресенье'
 END [День недели]


Не будет работать до даты

select cast(0 as datetime)
12 ноя 08, 12:10    [6427972]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
iap
Member

Откуда: Москва
Сообщений: 46983
NIIIK
iap
SELECT
 CASE DATEDIFF(DAY,0, GETDATE())%7
  WHEN 0 THEN 'Понедельник'
  WHEN 1 THEN 'Вторник'
  WHEN 2 THEN 'Среда'
  WHEN 3 THEN 'Четверг'
  WHEN 4 THEN 'Пятница'
  WHEN 5 THEN 'Суббота'
  WHEN 6 THEN 'Воскресенье'
 END [День недели]


Не будет работать до даты

select cast(0 as datetime)
А так?
SELECT
 CASE	(7+DATEDIFF(DAY,0, GETDATE())%7)%7
  WHEN 0 THEN 'Понедельник'
  WHEN 1 THEN 'Вторник'
  WHEN 2 THEN 'Среда'
  WHEN 3 THEN 'Четверг'
  WHEN 4 THEN 'Пятница'
  WHEN 5 THEN 'Суббота'
  WHEN 6 THEN 'Воскресенье'
 END [День недели]
12 ноя 08, 12:19    [6428043]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: день недели  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54205
Коллеги, подскажите, как от локальных настроек зависит номер дня недели

declare @p_date_from datetime = {ts '2017-09-01 01:02:03'}
declare @p_date_to   datetime = {ts '2017-09-13 11:12:03'}
;

with  tree (vDate)
as (select cast(cast(@p_date_from as date) as datetime) vDate
union all
   select dateadd(day, 1, vDate) vDate
   from tree
 where vDate < cast(cast(@p_date_to as date) as datetime)
 ) 
select vDate, datename(dw, vDate ), datepart(dw, vDate )
  from tree


vDateдень неделиномер дня недели
2017-09-01 00:00:00.000Friday6
2017-09-02 00:00:00.000Saturday7
2017-09-03 00:00:00.000Sunday1
2017-09-04 00:00:00.000Monday2
2017-09-05 00:00:00.000Tuesday3
2017-09-06 00:00:00.000Wednesday4
2017-09-07 00:00:00.000Thursday5
2017-09-08 00:00:00.000Friday6
2017-09-09 00:00:00.000Saturday7
2017-09-10 00:00:00.000Sunday1
2017-09-11 00:00:00.000Monday2
2017-09-12 00:00:00.000Tuesday3
2017-09-13 00:00:00.000Wednesday4
25 окт 17, 07:31    [20897342]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54205
или лучше всегда в начале выполнить
SET DATEFIRST 7
и не надеяться на дядю?
25 окт 17, 07:36    [20897348]     Ответить | Цитировать Сообщить модератору
 Re: день недели  [new]
invm
Member

Откуда: Москва
Сообщений: 9351
andreymx,

Независимо от настроек:
(datepart(dw, @MyDate) + @@datefirst - 2) % 7 + 1
25 окт 17, 11:55    [20898168]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить