Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

Даты в MSSQL   Найти похожие ветки 

 
surkis   (2005-08-04 13:55) [0]

Подскажите как правильно при формировании запроса в делфи указывать даты? я имею в виду синтаксис и формат..к примеру:
where DateDone between #01.07.2005# and #01.08.2005# или
where DateDone between "01.07.2005" and "01.08.2005" или
where DateDone between "1 July, 2005" and "1 August 2005"


 
Sergey13 ©   (2005-08-04 13:56) [1]

Правильно - через параметры.


 
ANB ©   (2005-08-04 13:57) [2]

Оптимально "20050701", т.е. "YYYYMMDD". Такой формат не зависит от локальных настроек. Иначе могут быть грабли.


 
ANB ©   (2005-08-04 13:57) [3]

Да, и лучше это все в параметры заворачивать.


 
Fay ©   (2005-08-04 14:03) [4]

2 surkis   (04.08.05 13:55)

Смотри [2]. Остальное написали сгоряча.


 
Fay ©   (2005-08-04 14:06) [5]

2 Sergey13 ©   (04.08.05 13:56) [1]
Как передать в параметре (ADOQuery какой-нибудь) дату "20050101 12:33:44.557"?


 
ANB ©   (2005-08-04 14:08) [6]


> Fay ©   (04.08.05 14:06) [5]
- строкой. Гы. Я так всегда и делал.


 
Sergey13 ©   (2005-08-04 14:09) [7]

2 [5] Fay ©   (04.08.05 14:06)
Я с АДО не работал. Полагаю, что аналогично не АДО. AsDateTime


 
Fay ©   (2005-08-04 14:10) [8]

2 ANB ©   (04.08.05 14:08) [6]
Зачем тогда параметры?


 
Fay ©   (2005-08-04 14:11) [9]

2 Sergey13 ©   (04.08.05 14:09) [7]
>> Полагаю, что аналогично не АДО. AsDateTime
Получится только до секунд.


 
surkis   (2005-08-04 14:12) [10]

Спасибо всем!!! буду пробовать...


 
Sergey13 ©   (2005-08-04 14:14) [11]

2[9] Fay ©   (04.08.05 14:11)
А мне достаточно. 8-)
Нафига точнее то? Слабо себе прдставляю где это надо. Нет, я понимаю, что иногда нужны милисекунды, но не могу себе представить. 8-)
Кроме того есть интервалы.


 
surkis   (2005-08-04 14:20) [12]


> ANB © [2]

Если я правильно понял то правильно так:
Where DateDone beetween "20050701" and "20050901"
Но Query Analyzer на эту строку говорит:"Incorrect syntax near "beetween""


 
Fay ©   (2005-08-04 14:25) [13]

surkis   (04.08.05 14:20) [12]
between


 
ANB ©   (2005-08-04 14:25) [14]


> beetween

Правильно говорит. Читай внимательно ошибку.


 
Fay ©   (2005-08-04 14:25) [15]

2 Sergey13 ©   (04.08.05 14:14) [11]
>> Кроме того есть интервалы.
Это хто такие?


 
surkis   (2005-08-04 14:27) [16]

а ну да я в спешке лишнюю букву поставил.. всем спасибо получилось!!!


 
Sergey13 ©   (2005-08-04 14:31) [17]

2[15] Fay ©   (04.08.05 14:25)
>>Это хто такие?
Это интервал между двумя соседними секундами.
Мне никогда не нужны были милисекунды. Я ими не занимался.
Ты считаешь что параметры это плохо?


 
ANB ©   (2005-08-04 14:32) [18]


> Fay ©   (04.08.05 14:25) [15]


> Sergey13 ©   (04.08.05 14:14) [11]

Не собачтесь. Сами знаете, что оба варианта имеют право на жизнь. Каждый в своем случае.

Например, мне нужно просто выполнить запрос из QA. И как мне здесь с параметрами изгаляться ? И зачем ?


 
Fay ©   (2005-08-04 14:34) [19]

2 Sergey13 ©   (04.08.05 14:31) [17]
>> Ты считаешь что параметры это плохо?
Я считаю, что они редко неоходимы.


 
ANB ©   (2005-08-04 14:35) [20]


> Fay ©   (04.08.05 14:34) [19]
- если запросы из клиента на делфи - то очень часто. Проблем меньше.


 
Sergey13 ©   (2005-08-04 14:37) [21]

2 [19] Fay ©   (04.08.05 14:34)
>Я считаю, что они редко неоходимы.
Из-за милисекунд? А как же разбор запроса. Без параметров он будет рабираться всегда, с параметрами 1 раз.
Или в МС не так? Я с ним не работал.


 
Fay ©   (2005-08-04 14:38) [22]

2 ANB ©   (04.08.05 14:35) [20]
>> если запросы из клиента на делфи - то очень часто.
А разве я на VFP пишу?
>> Проблем меньше
Меньше нуля?


 
Fay ©   (2005-08-04 14:41) [23]

2 Sergey13 ©   (04.08.05 14:37) [21]

Если у Вас цикл одинаковых запросов, тогда , конечно, с параметрами.
В остальных случая такой необходимости нет.
Я ведь говорю именно о необходимости!


 
Fay ©   (2005-08-04 14:42) [24]

2 Sergey13 ©   (04.08.05 14:31) [17]
>> Это интервал между двумя соседними секундами.
Интервал - это интервал. Понял.
Это хде такой "есть"?


 
Sergey13 ©   (2005-08-04 14:46) [25]

2 [23] Fay ©   (04.08.05 14:41)
>Если у Вас цикл одинаковых запросов, тогда , конечно, с параметрами.
При чем тут цикл? Если есть запрос, который отрабатывает более 1 раза за сеанс, его выгоднее делать в параметрами. Чем он чаще выполняется тем выгоднее. Соглашусь лишь с тем, что выгода эта визуально "на глаз" не заметна.


 
Sergey13 ©   (2005-08-04 14:48) [26]

2 [24] Fay ©   (04.08.05 14:42)
>Это хде такой "есть"?
Эта тама, рядом с between-ом.


 
Fay ©   (2005-08-04 14:54) [27]

2 Sergey13 ©   (04.08.05 14:48) [26]
У меня, видимо, не рядом. 8)
Пример можно?


 
Fay ©   (2005-08-04 14:57) [28]

2 Sergey13 ©   (04.08.05 14:46) [25]
>> Если есть запрос, который отрабатывает более 1 раза за сеанс
Ага! И сервер помнит его план до конца сессии? Как бы не так!


 
Sergey13 ©   (2005-08-04 15:09) [29]

2[27] Fay ©   (04.08.05 14:54)
>Пример можно?

between :d1 and :d2
где параметры различаются на секунду

Дались тебе эти милисекунды.

[28] Fay ©   (04.08.05 14:57)
>Ага! И сервер помнит его план до конца сессии? Как бы не так!
Если запросы с параметрами пишу все разработчики и если с сервером работает не один экземпляр приложения а несколько десятков, то это очень даже вероятно. Я повторю, я с МС не работал, а вот в Оракле часто наблюдал, как некоторые запросы отрабатывались по 1000000 раз и более (не за день разумеется, а за время непрерывной работы сервера - несколько недель/месяцев).


 
Fay ©   (2005-08-04 15:15) [30]

2 Sergey13 ©   (04.08.05 15:09) [29]
1) Про интервалы я так и не понял ничего. Совсем.
2) 1000000 - это не "более 1 раза за сеанс" Это почти 12 герц (если 24 часа)!


 
Sergey13 ©   (2005-08-04 15:19) [31]

2[30] Fay ©   (04.08.05 15:15)
1) Ну и ладно.
2) Я ж говорю, что не за 1 день, а за месяцы работы.


 
ANB ©   (2005-08-04 16:27) [32]


> Fay ©   (04.08.05 14:38) [22]
- есть еще ХП. Их же тоже ты пишешь.

> Fay ©   (04.08.05 14:57) [28]
- не думаю, что в MS SQL сильно по другому, но в оракле есть понятие проедурный кэш. Если непараметрических запросов с клиента не приезжает, то он используется аккуратно, а параметрические его портят. В МВ за написание программистом непараметризированного запроса его без раздумий штрафовали на 15 баксов.


 
Sergey13 ©   (2005-08-04 16:33) [33]

2 [32] ANB ©   (04.08.05 16:27)
>  а НЕпараметрические его портят.
8-)


 
ANB ©   (2005-08-04 16:50) [34]


> Sergey13 ©   (04.08.05 16:33) [33]

Очепятка :)))


 
Fay ©   (2005-08-04 17:40) [35]

2 ANB ©   (04.08.05 16:27) [32]
>> штрафовали на 15 баксов
С этого и надо было начинать! 8)


 
Anatoly Podgoretsky ©   (2005-08-04 19:48) [36]

Можно штрафовать как за параметрические, так и за непараметрические параметры.



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.027 c
14-1124719149
red_imp
2005-08-22 17:59
2005.09.18
Народ каким кодеком открыть *.3gp


9-1116664406
Nic87
2005-05-21 12:33
2005.09.18
Blitz Basic 3d


14-1125057679
Pavel__
2005-08-26 16:01
2005.09.18
Кто автор музыки?


14-1124449126
DiamondShark
2005-08-19 14:58
2005.09.18
Вот такая у нас была гроза


6-1116102198
KonstantinXaker(KX)
2005-05-15 00:23
2005.09.18
Рисунок из Интернета в TImage