Мне нужно, чтобы мои даты были в следующем формате:
12/3/2011 например, в отличие от 12/03/2011
12/3/2011
12/03/2011
SQL, который я сейчас использую для набора результатов:
CONVERT(VARCHAR(10), Created, 105) as Created
Как я могу это сделать, спасибо!
В SQL Server нет стандартного формата даты, который возвращает одну цифру за дни или месяцы.Вы можете свернуть свои собственные функции MONTH, DAY и YEAR
-- M/D/Y format (USA) SELECT CAST(MONTH(@date) AS varchar(2)) + '/' + CAST(DAY(@date) AS varchar(2)) + '/' + CAST(YEAR(@date) AS varchar(4))
или
-- D/M/Y format (everywhere else) SELECT CAST(DAY(@date) AS varchar(2)) + '/' + CAST(MONTH(@date) AS varchar(2)) + '/' + CAST(YEAR(@date) AS varchar(4))
Все эти подходы могут повлиять на производительность, если это в отношении столбца.Поскольку C # и многие другие клиентские языки имеют гораздо более гибкие функции для форматирования таких вещей, как даты, вам следует вместо этого применять это форматирование на уровне клиента.Где, по-видимому, вы будете перебирать все строки и обрабатывать значения по отдельности, так как вы все равно их отображаете.
CONVERT (CHAR (10), CONVERT (DATETIME, Created), 103)
Есть лучшее предложение. Я бы добавил функцию форматирования, потому что то, что вы просите, немного необычно,
http://www.sqlusa.com/bestpractices2005/centurydateformat/
Проверьте fnFormatDate. Затем вы можете отформатировать его так, как хотите, но он может / не может быть встроенным, что вы и хотите сделать с оператором
ЗАМЕНА (КОНВЕРТ (VARCHAR (10), Создано, 105), '\ 0', '\') как Создано
Добавьте REPLACE '/ 0' с помощью '/' и затем проверьте, является ли ЛЕВЫЙ или первый символ 0