2011-01-11 2 views
6

Мне нужна дата с даты и времени. в формате "дд-мм-гггг"Удалить время с сервера DateTime sql 2005

Я попытался follwoing

Запрос:

select Convert(varchar(11), getdate(),101)

Выход:

01/11/2011

Запрос

SELECT cast(floor(cast(GETDATE() as float)) as datetime)

Выходной

2011-01-11 00:00:00.000

Запрос:

SELECT 
    CONVERT(VARCHAR(MAX),DATENAME(DD,GETDATE())) + '-' + 
    CONVERT(VARCHAR(MAX),DATEPART(MONTH,GETDATE())) + '-' + 
    CONVERT(VARCHAR(MAX),DATENAME(YYYY,GETDATE())) ` 

Выход:

11-1-2011 т.е. "д-м-гггг"

я требовал вывода в формате "дд-мм-гггг".

ответ

4

Try:

SELECT convert(varchar, getdate(), 105) 

Больше here.

+0

Благодаря Eumiro :) – Mike

3

Использование функции CONVERT «работает», но только если вы сравниваете строки со строками. Чтобы эффективно сравнивать даты, вам действительно нужно сохранить тип данных SMALLDATETIME, строго набранный с обеих сторон уравнения (т. Е. «=»). Поэтому вышеприведенный комментарий «apros» на самом деле является лучшим ответом здесь, потому что упомянутый блог имеет правильные формулы, чтобы использовать, чтобы отменить компонент времени, «сглаживая» его до полуночи (например, 12:00:00) посредством округления и любого столбца даты в SQL Server 2005 всегда будет по умолчанию до 12:00:00, если дата дана без какого-либо времени.

Это работало для меня ...

select dateadd(day, datediff(day, '20000101', @date), '20000101') 
Смежные вопросы