5

Używam programu SQL Server 2008 R2. Chcę przekonwertować datę systemową w formacie: dd/mm/yyJak przekonwertować systemowy format daty na dd/mm/yy w SQL Server 2008 R2?

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

Moja kolumna zawiera dane:

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

co chcę: jeśli płyta ma 2013-01-01 00:00:00.000 w tym formacie to tylko zmienić na Score Caculation - dd/mm/yy

Mój kod jest

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

Jak dostałeś dni od dnia '10' datą jest' 01' – Habib

Odpowiedz

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

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

Sprawdź to. Zakładam, że D30.SPGD30_TRACKED_ADJUSTMENT_X jest typu datetime.
Dlatego używam funkcji CAST(), aby utworzyć ją jako wyrażenie znaków, ponieważ CHARINDEX() działa na wyrażenie znaków.
Również myślę, że nie ma potrzeby stanu OR.

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 

Zobacz link do konwersji do innych formatów daty https://www.w3schools.com/sql/func_sqlserver_convert.asp

+0

chcę CONVER nazwę kolumny „D30.SPGD30_TRACKED_ADJUSTMENT_X”, gdzie mogę umieścić, że –

+0

Czy „D30.SPGD30_TRACKED_ADJUSTMENT_X” kolumna datetime? –

+0

to nie działa ... co chcę, jeśli "-" zawiera, to tylko zmieniam format daty na tę dd/mm/rr –

2

Zapytanie poniżej spowoduje formacie dd/mm/yy.

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

poniżej zapytania spowoduje DD-mmm-yy.

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

po prostu użyć tego do dd/mm/yy i to

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

na mm/dd/yy

Powiązane problemy