Microsoft SQL Server 2008 - даты - PullRequest
       0

Microsoft SQL Server 2008 - даты

5 голосов
/ 10 августа 2011

У меня есть пара вопросов относительно дат в SQL Server.

  1. Как разделить значение datetime "2011-08-10 14: 56: 17.267" на дату и метку времени в двух отдельных столбцах. Например. Дата "2011-08-10" и отметка времени "14:56:17"

  2. Я хочу удалить метку времени из значения datetime в "2011-08-10" и все еще иметь возможность упорядочить данные по дате (поэтому не преобразуется в varchar). Также есть возможность изменить значение даты на «10 августа 2011» и все еще может сортировать (не в алфавитном порядке, а в реальном порядке).

Спасибо, HL

Ответы [ 2 ]

6 голосов
/ 10 августа 2011

Для первого:

UPDATE atable
SET
  DateColumn = CAST(DateTimeColumn AS date),
  TimeColumn = CAST(DateTimeColumn AS time)

Что касается второго, формат отображения даты не связан с датой значение . Вы можете упорядочить результат по столбцу даты, но в предложении SELECT вы можете использовать CONVERT для отображения даты в нужном формате. Например:

SELECT
  CONVERT(varchar, DateColumn, 106) AS Date,
  …
FROM atable
ORDER BY DateColumn
0 голосов
/ 10 августа 2011

использовать функцию CONVERT с параметрами из ресурса http://www.mssqltips.com/tip.asp?tip=1145

-- simple conversion example:
SELECT CONVERT(VARCHAR(10), GETDATE(), 102) -- for date
SELECT CONVERT(VARCHAR(10), GETDATE(), 8)  -- for time
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...