Формат даты T-SQL с подстрокой - PullRequest
1 голос
/ 21 декабря 2011

У нас есть поле с именем target_date. Это строка Нам нужно извлечь месяц и год из этого поля.

Пример: 1/10/2011 (дд / мм / год) мы пытаемся с

 substring(target date,findstring(targetdate,"/",1)+1,(findstring(targetdate,"/",2)-findstring(targetdate,"/",1)+1)).

Пожалуйста, помогите мне.

Спасибо.

Ответы [ 4 ]

5 голосов
/ 21 декабря 2011

Ну, первая проблема здесь в том, что вы храните дату и время в виде строки. Я предполагаю, что по какой-то причине вы не можете это исправить ...

В этом случае я бы использовал convert() function

convert(datetime, target_date, 103)

, а затем извлеките необходимые значения, используя month() и year()

4 голосов
/ 21 декабря 2011

Описание

  1. Использование CAST и CONVERT (Transact-SQL) для преобразования вашей строки в дату и время.
  2. Использование DATEPART (Transact-SQL)) для извлечения месяца и года.

Образец

    -- this will give you the month of your target_date
    datePart(mm, convert(datetime, target_date, 103)) 

    -- this will give you the year of your target_date
    datePart(yyyy, convert(datetime, target_date, 103)) -- 2011
    -- or
    datePart(yy, convert(datetime, target_date, 103)) -- 11
2 голосов
/ 21 декабря 2011
declare @date varchar(10)

set @date = '1/10/2011'

select DATEPART(yyyy, CONVERT(datetime, @date, 103)), DATEPART(mm, CONVERT(datetime, @date, 103))
0 голосов
/ 21 декабря 2011

Попробуйте это:

Month : left(right(target_date , 7),2)
Year: right(target_date , 4)

Это если формат target_date всегда одинаков (т. Е. Дд / мм / гггг)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...