Member 12926744 Ответов: 1

Выберите все время в сутках в формате 12 часов на основе текущего времени


Всем Привет,
Мне нужно выбрать все часы в сутках в формате 12 часов на основе текущего времени .т. е. если это 03:00 вечера, я должен получить все время между 03:00 вечера и 12:00 утра .Любая помощь будет очень признательна .заранее спасибо

Что я уже пробовал:

select distinct CONVERT(varchar(15),CAST( dateadd(hour,number-1,'01-jan-2017' ) AS TIME),100) as slots from master..spt_values where number>=1 and number<=24

1 Ответов

Рейтинг:
2

OriginalGriff

Вы имеете в виду, что хотите вернуть все строки, где дата ввода находится между сегодняшним днем и полуночью сегодня вечером? Если это так, попробуйте что-то вроде:

SELECT * FROM MyTable WHERE EnterDateColumn BETWEEN @StartDate AND CONVERT(DATE, DATEADD(dd, 1, @StartDate))

Если вы этого не сделаете, то вам нужно точно объяснить, что вы имеете в виду, вероятно, с примерами ввода и вывода...


Member 12926744

Нет, мне нужно выбрать все часы в день с 12:00 утра до 12:00 вечера .
12:00 ,1:00,2:00...12:00 ВЕЧЕРА .
Я получаю их в следующем запросе "select distinct CONVERT(varchar(15),CAST( dateadd(hour,number-1,'01-jan-2017' ) AS TIME),100) as slots from master..spt_values where number>=1 and number<=24"

Но проблема в том ,что , например, если текущее время составляет 3:00 вечера, мне нужно только то время между 3:00 вечера и 12 :00 вечера и так далее.

OriginalGriff

Тогда просто переоденься
... где число >= 1
к
... где число >= 15

Member 12926744

как проверить его с текущим временем, так как я застрял там

OriginalGriff

Функция datepart(чч, функции getdate())

Имейте в виду, что это будет в серверном времени - поэтому, если ваш сервер находится в другом часовом поясе, вам нужно будет передать нужное значение из вашего программного обеспечения для презентаций.