web-dev-qa-db-fra.com

Comment convertir le format de date système en jj/mm/aa dans SQL Server 2008 R2?

J'utilise SQL Server 2008 R2. Je veux convertir la date du système à ce format: dd/mm/yy 

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

Ma colonne contient les données: 

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

Ce que je veux: si l’enregistrement a 2013-01-01 00:00:00.000 dans ce format, je ne change que pour Score Caculation - dd/mm/yy

Mon code est,

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
5
Adalarasan_Serangulam
   SELECT CONVERT(varchar(11),getdate(),101)  -- mm/dd/yyyy

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

Vérifie ça . Je suppose que D30.SPGD30_TRACKED_ADJUSTMENT_X est de type datetime.
C'est pourquoi j'utilise la fonction CAST() pour la transformer en expression de caractère car CHARINDEX() fonctionne avec une expression de caractère.
De plus, je pense qu’il n’est pas nécessaire d’utiliser la condition 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

MODIFIER:

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

Voir ce lien pour la conversion en d'autres formats de date: https://www.w3schools.com/sql/func_sqlserver_convert.asp

14
Mudassir Hasan

La requête ci-dessous entraînera le format dd/mm/yy.

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

Essaye ça

SELECT CONVERT(varchar(11),getdate(),101) -- Converts to 'mm/dd/yyyy'

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

Plus d'informations ici: https://msdn.Microsoft.com/en-us/library/ms187928.aspx

1
Er Ketan Vavadiya

La requête ci-dessous donnera le format jj-mmm-aa.

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

utilisez simplement ceci pour jj/mm/aa et cela 

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

pour mm/jj/aa

0
Palash