powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / упростить запрос
5 сообщений из 5, страница 1 из 1
упростить запрос
    #32044404
johny5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
никто не подскажет как можно упростить запрос в этой ф-ции??
CREATE PROCEDURE sp_mr_j5_getDateList
@date_from as datetime,
@date_to as datetime -- не включительно
AS
SET DATEFORMAT mdy
SELECT DISTINCT CAST(
(CAST(MONTH(tbegin) AS nvarchar) + '/'
+ CAST(DAY(tbegin) AS nvarchar) + '/'
+ CAST(YEAR(tbegin) AS nvarchar) )
AS datetime ) AS dates
FROM dt_TalksTable
WHERE CAST(
(CAST(MONTH(tbegin) AS nvarchar) + '/'
+ CAST(DAY(tbegin) AS nvarchar) + '/'
+ CAST(YEAR(tbegin) AS nvarchar) )
AS datetime ) >= @date_from
AND CAST(
(CAST(MONTH(tbegin) AS nvarchar) + '/'
+ CAST(DAY(tbegin) AS nvarchar) + '/'
+ CAST(YEAR(tbegin) AS nvarchar) )
AS datetime ) < @date_to

здесь куча CAST-ов нужна для выделения из даты/времени только даты.
...
Рейтинг: 0 / 0
упростить запрос
    #32044406
~Bazul~
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чёйто не понял - вначале разбираешь дату на состовляющие, потом тут же собираешь в строку и переводишь в datetime. И так тири раза.
В чем смысл сиих манипуляций.
Не узрел и выделения из даты/времени только даты
...
Рейтинг: 0 / 0
упростить запрос
    #32044409
Дурдом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select CONVERT(smalldatetime, FLOOR(CONVERT(float, GetDate()))) as OnlyDate

GetDate() заменить на нужную дату
...
Рейтинг: 0 / 0
упростить запрос
    #32044439
Фотография Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если @date_from и @date_to - целые даты, без часов и секунд, то тогда сравнивать можно просто при помощи
Код: plaintext
WHERE tbegin >= @date_from AND tbegin < @date_to
по той причине, что если даже обрубленное tbegin больше @date_from, то необрубленное и подавно будет больше. А если обрубленное tbegin будет меньше @date_to, то сколько к нему не прибавляй часов, минут, секунд и милисекунд, то все равно они будут меньше искомого. Когда же они сравняются, то это уже будет следующий день :)

-- Слон
...
Рейтинг: 0 / 0
упростить запрос
    #32044771
johny5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
просто гениально
блин, почему я сразу недодумался до такого сравнения.. )

и за select CONVERT(... тоже спасибо, ща, на практике буду тестить

кста я пробовал просто к int приводить а потом назад в datetime(по аналогии с билдером), дата смещается..
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / упростить запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]