Member 13518187 Ответов: 2

Запрос даты и времени SQL SERVER


I have Date Column Order_Date In date Time format , I need To Extract Today's Order before 14:00 P:M 'O' Clock and in Second Column I want to extract date from 15:00 P:M till 23:00 P:M in SQL SERVER,

Date Is in 24:00 Hor Format.

What I have tried:

Not Have Idea of date time format

OriginalGriff

Попробуйте дать нам примеры вашего ввода и вывода, которые вы хотите: любой код, который вы пробовали сами, также очень поможет нам понять, какая помощь вам нужна.

Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

2 Ответов

Рейтинг:
2

#realJSOP

Твой вопрос не имеет никакого смысла. Если дата/время заказа находится до 1400, то "2-й столбец" будет равен нулю, и наоборот. Кроме того, есть час между двумя указанными вами временами - как насчет заказов между 2 и 3 часами дня?

SELECT CONVERT(DATEtime,Order_Date,103) AS OrderDate,
       CASE WHEN CONVERT(TIME,CONVERT(DATETIME,Order_Date,103)) <= '14:00' 
            THEN CONVERT(TIME,CONVERT(DATETIME,Order_Date,103)) 
            ELSE NULL 
            END AS before_2pm,
       CASE WHEN CONVERT(TIME,CONVERT(DATETIME,Order_Date,103)) >= '15:00' 
            THEN CONVERT(TIME,CONVERT(DATETIME,Order_Date,103)) 
            ELSE NULL 
            END AS after_3pm
FROM [your_table]


Последнее замечание - если вы "не имеете представления о формате даты", попробуйте погуглить его и посмотреть, что вы найдете. Если вы не можете освоить даже самый простой поиск google, вы можете также найти другую работу.

РЕДАКТИРОВАТЬ ====================================

Я изменил код, чтобы рассматривать столбец Order_Date как varchar/nvarchar. И снова поиск в Google дал бы ответ на этот вопрос. Если вы хотите знать, почему вы должны писать код таким образом, google-ваш друг.


Member 13518187

Это дает ошибку, так как мой столбец Order_date находится в формате varchar, а дата сохраняется таким образом в моем столбце order_date '14/05/2018 10:26:15'

Richard Deeming

Никогда даты хранятся как varchar! Используйте один из следующих способов: Типы даты и времени[^] - напр: datetime2(0)[^].

Это не только упростит запрос данных, но и обеспечит правильность значений, а также сократит пространство, необходимое для их хранения.

#realJSOP

Я изменил свой ответ, чтобы соответствовать вашим новым требованиям.

Рейтинг:
1

DavidCorbin_1978

Надеюсь, это поможет - работайте в обоих вариантах.

Выберите * из таблицы
Где FIELDNAME > {ts '2013-02-01 15:00:00.001'}
И имя поля < {ts '2013-08-05 00:00:00.000'}