Выбор значения даты без времени в SQL Server 2005 - PullRequest
0 голосов
/ 29 сентября 2011

У меня проблема с выбором даты в SQL Server 2005. Имя таблицы - Softskill, а имя столбца - insertdate.Данные сохраняются как 2011-09-22 08: 50: 28.000 в этом формате.

Чтобы выбрать, я передаю значения из внешнего интерфейса как «2011-09-22», я имею в виду только дату.

Я пытался использовать

SELECT INSERTDATE FROM SOFTSKILL WHERE INSERTDATE = '2011-09-22'.

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

Ответы [ 3 ]

3 голосов
/ 30 сентября 2011
SELECT * 
FROM SOFTSKILL 
WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, InsertDate)) = '2011-09-22'
3 голосов
/ 29 сентября 2011

Вы хотите найти диапазон времени, охватывающий день. Что-то вроде:

SELECT INSERTDATE 
    FROM SOFTSKILL 
    WHERE INSERTDATE >= '2011-09-22 00:00:00'
        AND INSERTDATE < '2011-09-23 00:00:00'

Вы также можете применить функции к INSERTDATE для извлечения только части даты, но это сделает запрос не подлежащим обсуждению .

0 голосов
/ 01 октября 2011

Это будет делать то, что вам нужно

SELECT INSERTDATE 
FROM SOFTSKILL 
WHERE CAST(FLOOR(CAST(INSERTDATE AS FLOAT)) AS DATETIME) = '2011-09-30'

Вам нужно усечь INSERTDATE, чтобы его часть времени была 00: 00: 00.000;тогда он будет равен «2011-09-30» при условии, что INSERTDATE равен «2011-09-30 XX: XX: XX.xxx».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...