|
Microsoft SQL Server / 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 |
|
Microsoft SQL Server / cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
чтобы скуль точно знал, о каком формате идет речь и не вздумал месяц с датой местами поменять... А если datetime, то как я написал. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2022, 12:07 |
|
Microsoft SQL Server / cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
Я в явном виде cast или convert не использовал. Сейчас попробую повторить ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2022, 13:40 |
|
Microsoft SQL Server / cmd, sqlcmd, %date% %time% to MS SQL datetime
|
|||
---|---|---|---|
#18+
чтобы скуль точно знал, о каком формате идет речь и не вздумал месяц с датой местами поменять... А если datetime, то как я написал. 2022-07-08T13:42:17.675 - это мировой стандарт, про который знает скуль. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2022, 13:44 |
|
|
Start [/forum/search.php?do_search=1&tid=2909&author_mode=wrote_post&author=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%A2%D1%80%D1%91%D0%BF&start_from=82479]: |
0ms |
get settings: |
0ms |
get forum list: |
4ms |
searching: |
12ms |
get settings: |
0ms |
get forum list: |
5ms |
get topic data: |
2ms |
check forum access: |
0ms |
check topic access: |
0ms |
get forum data: |
0ms |
get found posts: |
19ms |
track hit: |
24ms |
get online users: |
52ms |
check new: |
249ms |
others: | 333ms |
total: | 700ms |
0 / 0 |