|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
dtdt_ukr2018-11-03 10:32:46.55003/11/2018 10:32:46 +02:00как получить tsql строку не такую 03/11/2018 10:32:46 +02:00 а такую 03/11/2018 12:32:46 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 13:40 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
зы: 'E. Europe Standard Time' - это будет входящий параметр в процедуре Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 13:42 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
для чего это надо - в отчетах (их много) получить строковое представление списка подчиненных действий с датами/временем; естественно, дата-время должны быть локальными пример: "01-10-2018 11:00:00 Вася; 01-10-2018 12:12:00 Коля; 01-10-2018 13:13:00 Снова Вася" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 13:47 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
Такие вещи в изобилии есть в интернетах https://stackoverflow.com/questions/8038744/convert-datetime-column-from-utc-to-local-time-in-select-statement ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 14:10 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
Одначе посмотрев справку MS SQL, все что нужно Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 14:22 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
aleks222Такие вещи в изобилии есть в интернетах https://stackoverflow.com/questions/8038744/convert-datetime-column-from-utc-to-local-time-in-select-statement там немного другое у меня уже есть локальное время как его корректно отформатировать в привычную пользователю строку? ЗЫ: Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) Aug 22 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 14:27 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
1. Задействовать мозг, если он есть. 2. Получить локальный Оффсет (или Желаемый Оффсет) 3. Получить Оффсет из даты в табличке. 4. Вычесть [локальный Оффсет] из [Оффсет из даты в табличке] 5. Прибавить разницу к [дате в табличке]. фсе. ЗЫ. Оффсет - это не загадка сфинкса. Это просто число минут. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 14:39 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
так на вид получается Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
dtdt_localDATEPART_TZOFFSETdt_ukrdt_ukr_12018-11-03 11:37:38.0732018-11-03 11:37:38.073 +02:0012003/11/2018 11:37:38 +02:002018-11-03 13:37:38.073 но как-то оно некрасиво выходит ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 14:39 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
aleks2221. Задействовать мозг, если он есть. 2. Получить локальный Оффсет (или Желаемый Оффсет) 3. Получить Оффсет из даты в табличке. 4. Вычесть [локальный Оффсет] из [Оффсет из даты в табличке] 5. Прибавить разницу к [дате в табличке]. фсе. ЗЫ. Оффсет - это не загадка сфинкса. Это просто число минут.а хамить не надо ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 14:40 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
что-то я делаю не так в тестовом примере и где-то туплю не могу понять с моментом перехода на зимнее время Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
dtdt_localDATEPART_TZOFFSETdt_ukrdt_ukr_12018-10-28 02:00:00.0002018-10-28 02:00:00.000 +03:0018028/10/2018 02:00:00 +03:002018-10-28 05:00:00.0002018-10-28 02:15:00.0002018-10-28 02:15:00.000 +03:0018028/10/2018 02:15:00 +03:002018-10-28 05:15:00.0002018-10-28 02:30:00.0002018-10-28 02:30:00.000 +03:0018028/10/2018 02:30:00 +03:002018-10-28 05:30:00.0002018-10-28 02:45:00.0002018-10-28 02:45:00.000 +03:0018028/10/2018 02:45:00 +03:002018-10-28 05:45:00.0002018-10-28 03:00:00.0002018-10-28 03:00:00.000 +02:0012028/10/2018 03:00:00 +02:002018-10-28 05:00:00.0002018-10-28 03:15:00.0002018-10-28 03:15:00.000 +02:0012028/10/2018 03:15:00 +02:002018-10-28 05:15:00.0002018-10-28 03:30:00.0002018-10-28 03:30:00.000 +02:0012028/10/2018 03:30:00 +02:002018-10-28 05:30:00.000мы в 04:00 переводили часы на час назад это, судя по всему и по вики , должно равняться 1:00 UTC последнего воскресенья октября в моем примере на TSQL это не так - переход был в 06:00 по локальному и в 03:00 по UTC ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 15:10 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
andreymxкак получить tsql строку не такую 03/11/2018 10:32:46 +02:00 а такую 03/11/2018 12:32:46 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 15:47 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
invmandreymxкак получить tsql строку не такую 03/11/2018 10:32:46 +02:00 а такую 03/11/2018 12:32:46 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
не уверен, что поможет, когда в запросе будут данные и летнего и зимнего времени ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 15:52 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
andreymxне уверен, что поможет, когда в запросе будут данные и летнего и зимнего времениКонечно не поможет. Напишите функцию вычисления начала и конца зимнего или летного времени и проверяйте дату на попадание в этот и нтервал. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 17:03 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
invmandreymxне уверен, что поможет, когда в запросе будут данные и летнего и зимнего времениКонечно не поможет. Напишите функцию вычисления начала и конца зимнего или летного времени и проверяйте дату на попадание в этот и нтервал.спасибо, но нет ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 18:14 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
iapНе поможет? Перевод UTC в локальный часовой пояс Так запрос и комментарий по ссылке неправильный, в России сейчас нет зимнего/летнего времени. Да и понятно было, что подход изначально неверный, он исходит из предположения, что текущие правила действовали всегда, а они меняются хаотично, даже указами областных администраций. andreymxспасибо, но нетВ сиквеле такой функциональности нет, и быть не может, это понятно из смысла вопроса, можно даже не искать. В виндах есть определение текущего местного времени, и это максимум, что можно получить. Для вашей задачи нужно либо писать свою функцию для конкретного места (изучив законодательство и историю), либо (если для всего мира) импортировать эти данные откуда то (может, существуют какие то источники, базы? но сомневаюсь). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 20:52 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
alexeyvgiapНе поможет? Перевод UTC в локальный часовой пояс Так запрос и комментарий по ссылке неправильный, в России сейчас нет зимнего/летнего времени. Да и понятно было, что подход изначально неверный, он исходит из предположения, что текущие правила действовали всегда, а они меняются хаотично, даже указами областных администраций. andreymxспасибо, но нетВ сиквеле такой функциональности нет, и быть не может, это понятно из смысла вопроса, можно даже не искать. В виндах есть определение текущего местного времени, и это максимум, что можно получить. Для вашей задачи нужно либо писать свою функцию для конкретного места (изучив законодательство и историю), либо (если для всего мира) импортировать эти данные откуда то (может, существуют какие то источники, базы? но сомневаюсь).Из первого поста ясно, что речь идёт об Украине, и там, наверно, зимнее/летнее время есть. Когда я говорю "не поможет ли", то не имею в виду простой копипаст. Надо пошевелить извилинами, само собой. Да! Комментарий описывает советское время, а значит, относится и к Украине. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 21:12 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
iapИз первого поста ясно, что речь идёт об Украине, и там, наверно, зимнее/летнее время есть.Для Украины такая формула тоже не сработает, потому что для каждого конкретного города (области, деревни) в разное время были разные правила. Если даже ограничиться периодом с 91 года, то эти правила тоже менались. Можно разве что для небольшого периода времени. andreymx не раскрывает детали, может, ему такого ограниченного по времени действия алгоритма достаточно (скажем, в какой то управленческой системе, для пары последних лет), а может, и недостаточно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 21:49 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
1. всем спасибо за помощь 2. нужен алгоритм с начала 2018 и далее, ранее не нужен для произвольного часового пояса 3. У кого sql-2016 и выше, проверьте результат, совпадает с моим? 21723273 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2018, 22:26 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
andreymx3. У кого sql-2016 и выше, проверьте результат, совпадает с моим? 21723273 Совпадает. ИМХО это просто баг МС. Мы видим, что таймзона Украины не соответствует East Europe Standard Time; по идее, должна быть отдельная зона для Украины, но её нет, приходится указывать E. Europe Standard Time. andreymx2. нужен алгоритм с начала 2018 и далее, ранее не нужен для произвольного часового поясаВы имеете в виду для произвольной тайм-зоны? Ну вот, ваш алгоритм ведь подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 00:08 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
alexeyvgandreymx3. У кого sql-2016 и выше, проверьте результат, совпадает с моим? 21723273 Совпадает. ИМХО это просто баг МС. Мы видим, что таймзона Украины не соответствует East Europe Standard Time; по идее, должна быть отдельная зона для Украины, но её нет, приходится указывать E. Europe Standard Time.А, понял, это не баг МС :-) Просто Украина - не "E. Europe Standard Time", а "FLE Standard Time" И в описании там "(UTC+02:00) Helsinki, Kyiv , Riga, Sofia, Tallinn, Vilnius" Поменяйте, и всё будет правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 00:27 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
alexeyvg, с "FLE Standard Time" еще хуже :) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
dtdt_localDATEPART_TZOFFSETdt_ukrdt_ukr_12018-10-28 02:00:00.0002018-10-28 02:00:00.000 +03:0018028/10/2018 02:00:00 +03:002018-10-28 05:00:00.0002018-10-28 02:30:00.0002018-10-28 02:30:00.000 +03:0018028/10/2018 02:30:00 +03:002018-10-28 05:30:00.0002018-10-28 03:00:00.0002018-10-28 03:00:00.000 +03:0018028/10/2018 03:00:00 +03:002018-10-28 06:00:00.0002018-10-28 03:30:00.0002018-10-28 03:30:00.000 +03:0018028/10/2018 03:30:00 +03:002018-10-28 06:30:00.0002018-10-28 04:00:00.0002018-10-28 04:00:00.000 +02:0012028/10/2018 04:00:00 +02:002018-10-28 06:00:00.0002018-10-28 04:30:00.0002018-10-28 04:30:00.000 +02:0012028/10/2018 04:30:00 +02:002018-10-28 06:30:00.0002018-10-28 05:00:00.0002018-10-28 05:00:00.000 +02:0012028/10/2018 05:00:00 +02:002018-10-28 07:00:00.0002018-10-28 05:30:00.0002018-10-28 05:30:00.000 +02:0012028/10/2018 05:30:00 +02:002018-10-28 07:30:00.0002018-10-28 06:00:00.0002018-10-28 06:00:00.000 +02:0012028/10/2018 06:00:00 +02:002018-10-28 08:00:00.0002018-10-28 06:30:00.0002018-10-28 06:30:00.000 +02:0012028/10/2018 06:30:00 +02:002018-10-28 08:30:00.0002018-10-28 07:00:00.0002018-10-28 07:00:00.000 +02:0012028/10/2018 07:00:00 +02:002018-10-28 09:00:00.000 а шарп выдает верную инфу для локалной зоны, только имя зоны не знаю как достать Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
28.10.2018 0:15:00 / 28.10.2018 3:15:00 / -03:00:00 28.10.2018 0:30:00 / 28.10.2018 3:30:00 / -03:00:00 28.10.2018 0:45:00 / 28.10.2018 3:45:00 / -03:00:00 28.10.2018 1:00:00 / 28.10.2018 3:00:00 / -02:00:00 28.10.2018 1:15:00 / 28.10.2018 3:15:00 / -02:00:00 28.10.2018 1:30:00 / 28.10.2018 3:30:00 / -02:00:00 28.10.2018 1:45:00 / 28.10.2018 3:45:00 / -02:00:00 28.10.2018 2:00:00 / 28.10.2018 4:00:00 / -02:00:00 28.10.2018 2:15:00 / 28.10.2018 4:15:00 / -02:00:00 28.10.2018 2:30:00 / 28.10.2018 4:30:00 / -02:00:00 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 10:32 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
зашел на сервер, где крутится БД запустил прогу на шарпе Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 14:07 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
функция получилась Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
getutcdateToTimeZoneDateTimegetdate2018-11-04 12:28:36.4072018-11-04 14:28:36.4072018-11-04 14:28:36.407 но с зимним-летним временем ничего хорошего ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 15:32 |
|
формат даты с тайм зоной
|
|||
---|---|---|---|
#18+
получилось вроде то, что надо Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
dtChangeTimeZoneDateTime_from_UTC_TO_FLEChangeTimeZoneDateTime_from_FLE_TO_UTC2018-10-27 23:00:00.0002018-10-28 02:00:00.0002018-10-27 20:00:00.0002018-10-27 23:30:00.0002018-10-28 02:30:00.0002018-10-27 20:30:00.0002018-10-28 00:00:00.0002018-10-28 03:00:00.0002018-10-27 21:00:00.0002018-10-28 00:30:00.0002018-10-28 03:30:00.0002018-10-27 21:30:00.0002018-10-28 01:00:00.0002018-10-28 03:00:00.0002018-10-27 22:00:00.0002018-10-28 01:30:00.0002018-10-28 03:30:00.0002018-10-27 22:30:00.0002018-10-28 02:00:00.0002018-10-28 04:00:00.0002018-10-27 23:00:00.0002018-10-28 02:30:00.0002018-10-28 04:30:00.0002018-10-27 23:30:00.0002018-10-28 03:00:00.0002018-10-28 05:00:00.0002018-10-28 00:00:00.0002018-10-28 03:30:00.0002018-10-28 05:30:00.0002018-10-28 00:30:00.0002018-10-28 04:00:00.0002018-10-28 06:00:00.0002018-10-28 02:00:00.0002018-10-28 04:30:00.0002018-10-28 06:30:00.0002018-10-28 02:30:00.0002018-10-28 05:00:00.0002018-10-28 07:00:00.0002018-10-28 03:00:00.0002018-10-28 05:30:00.0002018-10-28 07:30:00.0002018-10-28 03:30:00.0002018-10-28 06:00:00.0002018-10-28 08:00:00.0002018-10-28 04:00:00.000 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2018, 16:28 |
|
|
start [/forum/topic.php?fid=46&fpage=20&tid=1684514]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 154ms |
0 / 0 |