5

Я использую SQL Server 2008 R2. Я хочу, чтобы преобразовать системную дату в следующем формате: dd/mm/yyКак преобразовать системный формат даты в dd/mm/yy в SQL Server 2008 R2?

"2013-01-01 00:00:00.000" to "Score Calculation - 10/01/13". 

Моя колонка содержит данные:

1. DMS01A13010101 
2. RMS01A13010201 
3. 44 
4. 2013-01-01 00:00:00.000 

Что я хочу: если запись имеет 2013-01-01 00:00:00.000 в этом формате, то только я изменяю Score Caculation - dd/mm/yy

Мой код,

select 
    case 
     when (CHARINDEX(D30.SPGD30_TRACKED_ADJUSTMENT_X, '-*') > 0 or 
      CHARINDEX(D30.SPGD30_TRACKED_ADJUSTMENT_X, '*-') > 0) 
     then 'Score Calculation - ' + CONVERT(VARCHAR(8), D30.SPGD30_TRACKED_ADJUSTMENT_X, 1) 
    end checkthedate 
from 
    CSPGD30_TRACKING D30 
+0

Как вы день '10' со дня вашей даты является' 01' – Habib

ответ

13
SELECT CONVERT(varchar(11),getdate(),101) -- mm/dd/yyyy 

    SELECT CONVERT(varchar(11),getdate(),103) -- dd/mm/yyyy 

Проверьте это. Я предполагаю, что D30.SPGD30_TRACKED_ADJUSTMENT_X имеет тип данных datetime.
Вот почему я использую функцию CAST(), чтобы сделать ее символьным выражением, потому что CHARINDEX() работает над символьным выражением.
Также я думаю, что нет необходимости в состоянии ИЛИ.

select case when CHARINDEX('-',cast(D30.SPGD30_TRACKED_ADJUSTMENT_X as varchar)) > 0 

then 'Score Calculation - '+CONVERT(VARCHAR(11), D30.SPGD30_TRACKED_ADJUSTMENT_X, 103) 
end 

EDIT:

select case when CHARINDEX('-',D30.SPGD30_TRACKED_ADJUSTMENT_X) > 0 
then 'Score Calculation - '+ 
CONVERT(VARCHAR(11), CAST(D30.SPGD30_TRACKED_ADJUSTMENT_X as DATETIME) , 103) 
end 

Смотрите эту ссылку для преобразования в другие форматы даты: https://www.w3schools.com/sql/func_sqlserver_convert.asp

+0

я хочу CONVER имени столбца «D30.SPGD30_TRACKED_ADJUSTMENT_X», где я могу положить, что –

+0

Is «D30.SPGD30_TRACKED_ADJUSTMENT_X» столбец даты и времени? –

+0

это не работает..что я хочу, если "-" содержит, то только я меняю формат даты на этот dd/mm/yy –

2

Запрос ниже приведет в формате dd/mm/yy.

select LEFT(convert(varchar(10), @date, 103),6) + Right(Year(@date)+ 1,2) 
0

Запрос ниже будет приводить в формате дд-MMM-YY.

select 
cast(DAY(getdate()) as varchar)+'-'+left(DATEname(m,getdate()),3)+'-'+ 
Right(Year(getdate()),2) 
0
select convert(varchar(8), getdate(), 3) 

просто использовать это для дд/мм/гг и это

select convert(varchar(8), getdate(), 1) 

для мм/dd/yy

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