2010-12-30 5 views
1

Я использую следующее заявление для генерации случайных дат:Datetime без времени!

DATEADD(day, DATEDIFF(day, 1, GETDATE()) - 1 - FLOOR(RAND(CAST(NEWID() AS binary(4))) * 365.25 * 90), 10) 

Но я получаю следующий формат:

1974-01-28 00: 00: 00,000

Как могу ли я избавиться от временной части 00: 00: 00.000?

ответ

4

Если вы находитесь на SQL Server 2008, используйте тип данных date вместо datetime, иначе вы не сможете. Тип данных datetime всегда содержит компонент времени, хранящийся вместе с ним.

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

select CONVERT(varchar,GETDATE(),105) 

Возвращает

30-12-2010 

весьма обстоятельная шпаргалка для этих форматов is here

0

Вы не можете держать его как Datetime, если у вас есть SQL Server 2008 и использовать Date тип данных

2

Вы можете использовать тип данных DATE вместо Datatime DATETIME, если вы используете SQL Server 2008.

Или вы можете использовать функцию CONVERT для преобразования даты в тип данных типа VARCHAR, CHAR и т. Д.

Например

CONVERT(VARCHAR, GETDATE(), 101) 

производит этот

12/29/2010 

Подробнее о CONVERT форматах

+0

если вы собираетесь сделать это, я рекомендую вам использовать ISO YYYY/формат MM/DD. .. –

Смежные вопросы