|
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
Источник
|
|
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)
|
|