powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вывести время между 9:00 утра и 00:00 ночи
15 сообщений из 15, страница 1 из 1
вывести время между 9:00 утра и 00:00 ночи
    #39908234
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, привет!

Подскажите, пожалуйста, как мне вывести время между 9:00 утра и 00:00 ночи
Делаю сейчас

WHERE sent_date BETWEEN DATEADD(DD, -1, GETDATE()) AND GETDATE()

но тут такая тема, что я могу задеть и более ранние письма, за вчерашний день, а как сделать так, чтобы производил поиск только за сегодняшний день в промежутке между 9 утра и 00 вечера не могу понять.
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908238
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama,
Код: sql
1.
SELECT DATEADD(hour, 9, CAST(CAST (GETDATE() AS date) AS datetime)), CONVERT (date, GETDATE() + 1)
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908239
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал вот так:

WHERE sent_date BETWEEN (SELECT(CAST(CAST(GETDATE() AS DATE) AS DATETIME) +0.375) AND (SELECT CAST(CAST((GETDATE() + 1 AS DATE) AS DATETIME))



Если у вас будут варианты попроще, буду рад посмотреть.
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908240
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Massa52,
Спасибо,
немного доработал

часть с CONVERT
CONVERT (date, GETDATE() + 1):

SELECT CAST(CAST((GETDATE() + 1) AS DATE) AS DATETIME)
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908241
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dermama,

Ваш вариант мне нравится больше
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908449
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
    GETDATE()>=CONVERT(CHAR(10),GETDATE(),112)+' 09:00:00'
AND GETDATE()<DATEADD(DAY,1,CAST(GETDATE()AS DATE)
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908451
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap
Код: sql
1.
2.
    GETDATE()>=CONVERT(CHAR(10),GETDATE(),112)+' 09:00:00'
AND GETDATE()<DATEADD(DAY,1,CAST(GETDATE()AS DATE)

Скобку забыл
Код: sql
1.
2.
    GETDATE()>=CONVERT(CHAR(10),GETDATE(),112)+' 09:00:00'
AND GETDATE()<DATEADD(DAY,1,CAST(GETDATE()AS DATE))
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908539
nullin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,

Код: sql
1.
2.
cross apply(select convert(int, getdate()) as dt) as x
where sent_date >= convert(datetime, x.dt + 9.0 / 24) and sent_date < convert(datetime, x.dt + 1)
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908761
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, всем спасибо. Интересные варианты, последние два изучу на досуге, пока не совсем ясно)
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908762
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dermama
пока не совсем ясно)

имею ввиду cross aply)
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908793
Gerros
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
select
  DATEADD(day,DATEDIFF(day,'20000101',getdate()),'20000101 09:15:26')
, DATEADD(day,DATEDIFF(day,'20000101',getdate()),'20000102 00:00:00')
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39908796
nullin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dermama, делается это, чтобы getdate() конвертнуть в int, и затем это выражение не таскать повсюду, а использовать также, как при обращению к полю таблицы. Но, в данном случае cross apply можно спокойно на cross join заменить.
Вот тема про cross apply была, почитайте. И еще посмотрите, чем cross apply от outer apply отличается.
Здесь на форуме в этом году даже это обсуждали , очень будет интересно.
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39911683
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги,

У меня есть условие к примеру:

SELECT *
FROM table
WHERE send_time BETWEEN (SELECT DATEADD(HH, 9, CAST(CAST(GETDATE() AS DATE) AS DATETIME))) AND (SELECT CAST(CAST((GETDATE() +1) AS DATE) AS DATETIME))

дает время между 9:00 и 00:00 одного дня, онако, когда я пытаюсь использовать это условия обращаясь к таблице на другом сервере я получаю ошибку: Type DATE is not a defined system type - как я понимаю на том сервере, к которому я пытаюсь обратиться нет поддержки типов данных DATE или TIME, можно ли сделать обходное решение? - заранее спасибо.
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39911690
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama
Коллеги,

У меня есть условие к примеру:

Код: sql
1.
2.
3.
SELECT *
FROM table
WHERE send_time BETWEEN (SELECT DATEADD(HH, 9, CAST(CAST(GETDATE() AS DATE) AS DATETIME))) AND (SELECT CAST(CAST((GETDATE() +1) AS DATE) AS DATETIME))



дает время между 9:00 и 00:00 одного дня, онако, когда я пытаюсь использовать это условия обращаясь к таблице на другом сервере я получаю ошибку: Type DATE is not a defined system type - как я понимаю на том сервере, к которому я пытаюсь обратиться нет поддержки типов данных DATE или TIME, можно ли сделать обходное решение? - заранее спасибо.

А эти SELECT-ы они, извините, зачем ?

Код: sql
1.
2.
3.
WHERE send_time BETWEEN 
DATEADD(HH, 9, cast(convert(varchar(8), getdate(), 112) as datetime)) and 
DATEADD(day, 1, cast(convert(varchar(8), getdate(), 112) as datetime))
...
Рейтинг: 0 / 0
вывести время между 9:00 утра и 00:00 ночи
    #39911692
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot court#22055044][quot dermama#22055037]Коллеги,

У меня есть условие к примеру:

А эти SELECT-ы они, извините, зачем ?

Большое спасибо) я просто топовый разработчик - поэтому там эти селекты) Сейчас смотрю и действительно, можно и без них.)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / вывести время между 9:00 утра и 00:00 ночи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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