|
|
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
Есть простенький запрос: Код: plsql 1. 2. 3. Если "Заявки" - таблица MS Access, результат предсказуем (рис.1). Но если "Заявки" - связанная таблица SQL server, результат странный (рис.2). Запрос "выбрасывает" первую дату диапазона и "захватывает" дату, следующую сразу следом за диапазоном. Этому есть рациональное объяснение или все-таки глюк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2016, 21:16:19 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
Сравнивать поле с типом дата (?) с литералом даты, преобразованным в длинное целое? Да Вы, батенька, эстет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2016, 23:07:11 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
Да, в Аксе, например, дата хранится в Double, слева от знака (справа - колич минут и секунд)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2016, 23:17:35 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
Видимо, это потому, что в Аксе 0 - это 30.12.1899, а в SQL сервере 01.01.1900 Используйте явные даты, если нужна совместимость запросов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 06:57:43 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
CLng выполняется на стороне Акса по его правилам, а серверу передается число, которое обрабатывается уже по другим правилам на стороне сервера, так что никаких глюков, кривой запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 07:14:27 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
гурДв Аксе, например, дата хранится в Double Ну это замечание на самом деле некорректное. Любые данные хранятся в бинарном виде. Просто у Datetime и у Double размер совпадает, да ещё интерпретация данных как даты сходна, посему преобразование максимально простое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 07:45:28 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
MrShinтак что никаких глюков, кривой запрос. Я и не претендую на то, что запрос прямой (ровный?). Хотелось разобраться в причине странного результата. Кстати, в ходе следствия выяснил, что запрос "съедает" не одну дату в начале выборки, а две (1-е и 2-е число). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 12:32:33 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
l-evgeneХотелось разобраться в причине странного результата Я писал выше, что операция преобразования даты в число на стороне Акцесса выполняется по другим правилам, чем обратное преобразование на сервере, в этом и причина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 13:03:39 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
l-evgene, l-evgeneMrShinтак что никаких глюков, кривой запрос. Я и не претендую на то, что запрос прямой (ровный?). Хотелось разобраться в причине странного результата. Кстати, в ходе следствия выяснил, что запрос "съедает" не одну дату в начале выборки, а две (1-е и 2-е число). вы не первый 693 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 13:43:23 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
guest_rusimport, спасибо за пендель). А у Вас очень хорошая память ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 15:36:30 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
l-evgene, опыта маловато конечно с sql. Тоже бодался и не совсем мог понять, разные результаты на разных машинах. В общем - на ветке sql нашел может даже в их факе. Дату на сервер нужно текстом. Там он у себя его нормально пережевывает. А при обратном вроде нормально дату преобразовывает. Если вдруг кому нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 18:24:16 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
Игортанl-evgene, Дату на сервер нужно текстом. в формате YYYYMMDD: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 18:37:25 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
ДатаНаСервер, да, хорошо что уточнили я забыл это указать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2016, 20:09:20 |
|
||
|
Интересное наблюдение: косяк при преобразовании даты
|
|||
|---|---|---|---|
|
#18+
Вообще лучше всего в подобных случаях использовать параметры к запросу, а не текст. Это и работает быстрее, и не будет проблем, подобных этой. Если, например, требуется передать текст в запрос без использования параметров, то придется самостоятельно чистить текст от спецсимволов и кавычек, с датами нужно учитывать потенциальные проблемы с региональным форматом даты, извращаясь с Format или функцией Str (не CStr!) и т.п. При использовании параметров таких проблем не возникает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2016, 08:46:33 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=39363545&tid=1612891]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
208ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 546ms |

| 0 / 0 |
