2016-10-25 2 views
0

Почему в большинстве языков программирования я могу сделать что-то относительно интуитивное, например format(mydate, "dd/mm/yyyy") или mydate.ToString("yyyyMMdd");, но в SQL Server мне нужно запомнить какой-то произвольный код, например, 101 или 112, например.SQL Server плохое управление форматированием дат

CONVERT(VARCHAR(10), GETDATE(), 101) 
CONVERT(VARCHAR(8), GETDATE(), 112) 

Каждый раз, когда мне нужно отформатировать дату в TSQL я должен Google это, это просто невозможно запомнить, если вы используете один и тот же один каждый день.

Есть ли причина для этого или другого способа сделать это? Благодаря

+2

Форматирование данных для отображения должно, как правило, оставляться для кода приложения и не обрабатываться в базе данных. – HABO

ответ

1

С SQL Server 2012 и далее вы можете использовать FORMAT функцию:

select format(getdate(),'yyyyMMdd')

Will возвращает 20161025

Или, если вы хотите сойти с ума:

select format(getdate(),'yyyy/MM-dd')

Будет ли return 2016/10-25

+0

Спасибо, но я использую 2008. Думаю, пришло время обновиться. – Blingers

+1

@Blingers Вы уверены, что вы * только * 8 лет за кривой ... – iamdave

+0

В зависимости от ваших потребностей FORMAT() не является точной заменой CONVERT() параметром стиля. CONVERT() с определенными параметрами стиля является детерминированным, тогда как FORMAT() является недетерминированным, поэтому вы не можете использовать его в постоянном вычисляемом столбце. –

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