|
Даты (Сдвиг в два дня)
|
|||
---|---|---|---|
#18+
SELECT (44376) AS PutDate, month(44376) AS MES, day(44376) AS DEN, day(44376) AS DEN MSSQL выдаёт 44376, 7, 1, 2021 т.е 01/07/2021 а в Экселе 44376 это 29/06/2021 (при смене формата) Разве у них не одна система исчисления/хранения даты? туплю... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 07:26 |
|
Даты (Сдвиг в два дня)
|
|||
---|---|---|---|
#18+
SELECT (44376) AS PutDate, month(44376) AS MES, day(44376) AS DEN, year(44376) AS GOD ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 07:53 |
|
Даты (Сдвиг в два дня)
|
|||
---|---|---|---|
#18+
982183Разве у них не одна система исчисления/хранения даты? И да и нет :) Да - потому что они оба берут за на чало отсчета "01.01.1900" Нет - потому что в MS SQL Server эта дата равна 0, а в Excel - 1 Код: sql 1. 2. 3.
попробуй сделать тоже самое в Excel. В первых трех строках разница в один день, а в последней уже 2. Откуда же взялся ещё один день? Да, Билл Гейтц его знает! Набежало за 120 лет... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 09:22 |
|
Даты (Сдвиг в два дня)
|
|||
---|---|---|---|
#18+
Guf, И как со всем этим жить? Точнее, как народ со всем этим живёт . . .? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 12:51 |
|
Даты (Сдвиг в два дня)
|
|||
---|---|---|---|
#18+
в Excel 1900-01-01 это 1 в МsSQL 1900-01-01 это 0 И где-то еще один день набежал . . . . ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 13:00 |
|
Даты (Сдвиг в два дня)
|
|||
---|---|---|---|
#18+
В Excel проще всего жить, если принимать дату с сервера не в виде числа, иначе интерпретируемого клиентом, а в виде строки , форматирующей представление даты в американском формате 'MM/DD/YYYY'. Именно в американском, и именно строки , это универсальный локаленезависимый вариант. Иначе как повезет, при отказе от этого варианта не обещано, что приехавшая строка вообще окажется способной быть интерпретирована как дата. Не только в Excel, для VBA вообще это предпочтительный способ передачи иначе интерпретируемых битов так, чтобы серверная и клиентская математика в конце концов сошлась. CDate с таким форматом точно справится правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 13:09 |
|
Даты (Сдвиг в два дня)
|
|||
---|---|---|---|
#18+
Guf Откуда же взялся ещё один день? Да, Билл Гейтц его знает! Набежало за 120 лет... там интересная история :)) off Джоэл Спольски (c) В большинстве программных сред даты хранятся в виде действительных чисел. При этом целая часть — это количество дней, истекших с некой оговоренной даты в прошлом, называемой началом эпохи (epoch). В Excel сегодняшняя дата 16 июня 2006 года хранится как число 38884, за точку отсчета принято 1 января 1900 года. Я стал экспериментировать с различными функциями даты и времени Basic и Excel и обнаружил в документации Visual Basic нечто странное: в Basic началом эпохи считалось 31 декабря 1899 года, а не 1 января 1900 года, но по каким-то причинам сегодняшняя дата и в Excel, и в Basic представлялась одинаково. Что?! Я стал искать разработчика Excel, достаточно старого, чтобы помнить такие вещи. Похоже, ответ знал Эд Фрайз (Ed Fries). — Ха, — сказал он мне, — проверь 28 февраля 1900 года. — 59, — отвечал я. — Теперь 1 марта 1900 года. — 61! — А где 60? — спросил Эд. — 29 февраля 1900 года, год был високосным! Он делится на 4! — Мысль интересная, но неверная, — сказал Эд, оставив меня в недоумении. Пришлось провести некоторые исследования. Оказалось, что годы, которые делятся на 100, бывают високосными, только если при этом еще делятся на 400. 1900-й год не был високосным. — В Excel ошибка! — воскликнул я. — Не совсем так, — возразил Эд. — Нам пришлось пойти на это, чтобы импортировать таблицы Lotus 1-2-3. — Значит, ошибка в Lotus 1-2-3? — Да, но, скорее всего, умышленная. Требовалось уместить Lotus в 640 Кбайт — не так много памяти. Если не обращать внимания на 1900 год, то можно проверить год на високосность по двум правым разрядам числа -они должны быть нулевыми. Быстро и легко. Наверное, ребята из Lotus решили, что ничего не случится, если какие-то два месяца в далеком прошлом будут считаться неправильно. Похоже, разработчики Basic дотошно учли эти два месяца, сдвинув эпоху на день назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 13:24 |
|
|
start [/forum/search_topic.php?author=tolkonepiu&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 664ms |
total: | 823ms |
0 / 0 |