Имя: Пароль:
IT
 
1Сная дата в SQL
0 Apokalipsec
 
22.11.13
12:16
Проблема: Дата может быть NULL, может быть 2013 год, а может быть 4013(смещение наше всё).
Как в sql запросе генерировать дату нормальную?
пока моя кривая поделка через case такая:
CASE
WHEN T4._Date_Time IS NULL THEN  CAST('2000-01-01 00:00:00' AS Datetime)
WHEN T4._Date_Time <= '4000-01-01 00:00:00' THEN  T4._Date_Time
ELSE DATEADD(year, - 2000, T4._Date_Time)
END

Может кто подскажет как проще?:)
1 Sammo
 
22.11.13
12:25
Проще получать дату из 1с
2 Apokalipsec
 
22.11.13
12:33
(1) В 1Ске не вариант, это для sql view.
Эх, значит придется оставить так.
3 trad
 
22.11.13
12:36
а 4013 там по ошибке или так задумано
если по ошибке, тогда может быть проще update 1 раз
4 Sammo
 
22.11.13
12:41
SELECT TOP 1 Offset FROM _YearOffset

Источник
http://infostart.ru/public/21348/
5 Apokalipsec
 
22.11.13
12:50
(3) в (4) ответ.)
В общем юзать кейзы.
На sql даже спрашивать не буду, там сразу камнями забьют.)
6 Повелитель
 
22.11.13
13:06
(5) Так у нас значит лояльный еще форум ))
7 zakidonoff
 
22.11.13
13:09
(6) Просто у мисты есть пятница! -)
И Екатерина из соседней ветки...
8 Sorm
 
22.11.13
13:19
(0) SQL по умолчанию понимает строчную дату форматов 'yyyyMMdd' и 'dd-MM-yyyy'
9 Sammo
 
22.11.13
13:22
(5) Хм. Навскидку - получить значение смещения и это количество лет всегда вычитать из даты в 1с. Не?
10 Apokalipsec
 
22.11.13
13:41
(9) Нет, я же написал что в этом поле может быть null, может быть 2013 год, а может и 4013. В первом случае не вычтем, во втором случае не сможет получить дату.)
Поэтому собственно и три условия.
11 trad
 
22.11.13
13:58
(5) извиняюсь, но в (3) я не поставил знак ?

в (4) нет ответа на вопрос - являются ли даты с 4013 годом ошибочными или нет?
12 Apokalipsec
 
22.11.13
14:14
(11) Даты не являются ошибочными - это результат смещения, для чего используется смещение - написано в посте (4)