|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|
---|---|
#18+
Попался в ловушку, в которую ловился лет 15 лет назад и совсем про нее забыл. 7 июля (2022-07-07) во второй половине дня запилил два батника, которые закидывали данные в MS SQL Server с помощью sqlcmd. В процедуре было поле datetime, в скрипте я его формировал через переменные %date% и %time%, в одном месте между ними поставил пробел, в другом - "T". Запятую перед долями секунды менял на точку. Проверил все командой эхо, все было норм. Утром смотрю - какая-то фигня. Из одного источника данных с полуночи вообще нет, из другого - уползли в другой месяц. В общем, правильное решение: 1. В региональных параметрах пользователя, из-под которого будет запускаться скрипт, формат даты в обоих местах должен быть "yyyy-MM-dd". 2. Формат времени "HH:mm:ss" для cmd работает не так, как надо, он все равно до 10 утра будет ставить пробел вместо начального ноля. Поэтому в скрипте меняем пробел на ноль и запятую на точку. Буква "T" между датой и временем нужна, чтобы скуль точно знал, о каком формате идет речь и не вздумал месяц с датой местами поменять. Код 1. 2. 3. 4. 5.
... |
|
:
|
|
08.07.2022, 11:28 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
чтобы скуль точно знал, о каком формате идет речь и не вздумал месяц с датой местами поменять... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2022, 11:51 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
чтобы скуль точно знал, о каком формате идет речь и не вздумал месяц с датой местами поменять... А если datetime, то как я написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2022, 12:07 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
#82395
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
чтобы скуль точно знал, о каком формате идет речь и не вздумал месяц с датой местами поменять... А если datetime, то как я написал. ... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
08.07.2022, 12:18 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2022, 12:25 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
Я в явном виде cast или convert не использовал. Сейчас попробую повторить ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2022, 13:40 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
чтобы скуль точно знал, о каком формате идет речь и не вздумал месяц с датой местами поменять... А если datetime, то как я написал. 2022-07-08T13:42:17.675 - это мировой стандарт, про который знает скуль. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2022, 13:44 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
Что его можно использовать в date, я знал, но использовать его в datetime мне казалось нелогичным. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2022, 13:49 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
Тема была перенесена из форума 'Вопросы по IT'. ... |
|||
Администратор:
Тема была перенесена из форума 'Вопросы по IT'.
Нравится:
Не нравится:
|
|||
25.08.2022, 18:26 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
Что его можно использовать в date, я знал, но использовать его в datetime мне казалось нелогичным. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2022, 21:58 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|
---|---|
#18+
Просто Трёп [игнорируется] строка в дату или дата в строку лучше всего преобразовывать функцией convert с 3мя параметрами. 3й параметр как раз формат строки входящей/исходящей. ... |
|
:
|
|
29.08.2022, 19:26 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
Чому нi 'format'? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2022, 01:04 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
Формат только в строку. Из строки в дату не получится ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2022, 08:50 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|
---|---|
#18+
Ну к примеру в csv поле d пришло в виде даты в основном даты в формате гггг.мм.дд но встречаются и в формате дд.мм.гггг в одном файле Использую select coalesce( try_convert(date,d,102), try_convert(date,d,104) ) ... ... |
|
:
|
|
30.08.2022, 09:02 |
|
cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
Ну к примеру в csv поле d пришло в виде даты в основном даты в формате гггг.мм.дд но встречаются и в формате дд.мм.гггг в одном файле Использую select coalesce( try_convert(date,d,102), try_convert(date,d,104) ) ... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2022, 09:06 |
|
|
start [/forum/topic.php?fid=17&msg=82395&tid=2909]: |
0ms |
get settings: |
22ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
1122ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 1229ms |
0 / 0 |