Преобразование даты в SQL - PullRequest
1 голос
/ 17 июня 2011

Я хочу преобразовать формат даты из ггггммдд в мм дд гггг

Я обнаружил довольно несколько ресурсов операторов SQL.Но я слишком новичок, чтобы действительно знать, что я ищу.

У меня есть следующее выражение, и мне нужно, чтобы оно выбило дату

select Date_of_hire from Employee where employeeID='input'

Ответы [ 4 ]

4 голосов
/ 17 июня 2011
SELECT REPLACE(CONVERT(VARCHAR(10), requested, 110), '-', ' ') AS hiredate

Взгляните на http://www.sql -server-helper.com / tips / date-format.aspx для дальнейшего ознакомления.Обратите внимание, что это эквивалентно

SELECT REPLACE(CONVERT(VARCHAR(10), requested, 101), '/', ' ') AS hiredate
3 голосов
/ 17 июня 2011

Выбор формата даты - это лучшая работа на уровне представления (ваше приложение для форм, ваше приложение ASP, ваш отчет и т. Д.).Пусть SQL просто вернет поле DATETIME и представит его в любом удобном для вас формате, правильно настроив вывод вашего приложения.

1 голос
/ 17 июня 2011

Я сталкивался с этим несколько раз, импортируя данные из AS400 (дата хранится в виде строки) в таблицу sql, где в середине нет приложения для выполнения форматирования, поэтому я понимаю, почему вы можете захотеть сделать это.
Посмотрите в Cast и Convert () (http://msdn.microsoft.com/en-us/library/ms187928.aspx)

select Convert(varchar,Cast(Date_of_hire as datetime) ,101) as Date_of_hire from Employee where employeeID='input'

Это будет форматировать как 01.01.2001.
Проблема с конвертированием в том, что он действительно ограничен в том, как он его форматирует.
Чтобы получить дату из такой строки, вы можете оставить команду convert out и просто приведите ее как datetime.

1 голос
/ 17 июня 2011

Это будет работать:

select replace(convert(varchar, Date_of_hire, 101), '/', ' ') 
from Employee where employeeID='input'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...