|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
Есть простенький запрос: Код: plsql 1. 2. 3.
Если "Заявки" - таблица MS Access, результат предсказуем (рис.1). Но если "Заявки" - связанная таблица SQL server, результат странный (рис.2). Запрос "выбрасывает" первую дату диапазона и "захватывает" дату, следующую сразу следом за диапазоном. Этому есть рациональное объяснение или все-таки глюк? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 21:16 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
Сравнивать поле с типом дата (?) с литералом даты, преобразованным в длинное целое? Да Вы, батенька, эстет... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 23:07 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
Да, в Аксе, например, дата хранится в Double, слева от знака (справа - колич минут и секунд)... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2016, 23:17 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
Видимо, это потому, что в Аксе 0 - это 30.12.1899, а в SQL сервере 01.01.1900 Используйте явные даты, если нужна совместимость запросов ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 06:57 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
CLng выполняется на стороне Акса по его правилам, а серверу передается число, которое обрабатывается уже по другим правилам на стороне сервера, так что никаких глюков, кривой запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 07:14 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
гурДв Аксе, например, дата хранится в Double Ну это замечание на самом деле некорректное. Любые данные хранятся в бинарном виде. Просто у Datetime и у Double размер совпадает, да ещё интерпретация данных как даты сходна, посему преобразование максимально простое. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 07:45 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
MrShinтак что никаких глюков, кривой запрос. Я и не претендую на то, что запрос прямой (ровный?). Хотелось разобраться в причине странного результата. Кстати, в ходе следствия выяснил, что запрос "съедает" не одну дату в начале выборки, а две (1-е и 2-е число). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 12:32 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
l-evgeneХотелось разобраться в причине странного результата Я писал выше, что операция преобразования даты в число на стороне Акцесса выполняется по другим правилам, чем обратное преобразование на сервере, в этом и причина. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 13:03 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
l-evgene, l-evgeneMrShinтак что никаких глюков, кривой запрос. Я и не претендую на то, что запрос прямой (ровный?). Хотелось разобраться в причине странного результата. Кстати, в ходе следствия выяснил, что запрос "съедает" не одну дату в начале выборки, а две (1-е и 2-е число). вы не первый 693 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 13:43 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
guest_rusimport, спасибо за пендель). А у Вас очень хорошая память ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 15:36 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
l-evgene, опыта маловато конечно с sql. Тоже бодался и не совсем мог понять, разные результаты на разных машинах. В общем - на ветке sql нашел может даже в их факе. Дату на сервер нужно текстом. Там он у себя его нормально пережевывает. А при обратном вроде нормально дату преобразовывает. Если вдруг кому нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 18:24 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
Игортанl-evgene, Дату на сервер нужно текстом. в формате YYYYMMDD: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 18:37 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
ДатаНаСервер, да, хорошо что уточнили я забыл это указать.. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2016, 20:09 |
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
---|---|---|---|
#18+
Вообще лучше всего в подобных случаях использовать параметры к запросу, а не текст. Это и работает быстрее, и не будет проблем, подобных этой. Если, например, требуется передать текст в запрос без использования параметров, то придется самостоятельно чистить текст от спецсимволов и кавычек, с датами нужно учитывать потенциальные проблемы с региональным форматом даты, извращаясь с Format или функцией Str (не CStr!) и т.п. При использовании параметров таких проблем не возникает. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2016, 08:46 |
|
|
start [/forum/topic.php?fid=45&fpage=87&tid=1612891]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
112ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 222ms |
0 / 0 |