如何在SQL Server 2008 R2中将系统日期格式转换为dd/mm/yy?

6
我正在使用SQL Server 2008 R2。我想将系统日期转换为这种格式:dd/mm/yy
"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 Calculation - 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

你是如何得到日期中的第10天,而日期本身只有01日的? - Habib
5个回答

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

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

请检查这个。我假设D30.SPGD30_TRACKED_ADJUSTMENT_X是日期时间数据类型。
这就是为什么我使用CAST()函数将其转换为字符表达式,因为CHARINDEX()函数适用于字符表达式。
此外,我认为没有必要使用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

编辑:

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

我想要转换列名“D30.SPGD30_TRACKED_ADJUSTMENT_X”,我应该把它放在哪里? - Adalarasan_Serangulam
“D30.SPGD30_TRACKED_ADJUSTMENT_X” 是一个日期时间列吗? - Mudassir Hasan
该列包含以下内容:1. "DMS01A13010101",2. "RMS01A13010201",3. "44",4. "2013-01-01 00:00:00.000"。 - Adalarasan_Serangulam
好的,那么在when子句中不需要使用CAST(),而是在Then子句中使用CAST()将列转换为datetime。 - Mudassir Hasan
它可以工作,但是显示的格式是“Score Calculation - 2013-01-03”,我需要将其转换为“Score Calculation - 03/01/13”。 - Adalarasan_Serangulam
显示剩余3条评论

2
下面的查询将以dd/mm/yy格式显示结果。
select  LEFT(convert(varchar(10), @date, 103),6) + Right(Year(@date)+ 1,2)

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

只需使用此格式:dd/mm/yy 和这个

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

对于 mm/dd/yy


1

0
以下查询将以dd-mmm-yy格式返回结果。
select 
cast(DAY(getdate()) as varchar)+'-'+left(DATEname(m,getdate()),3)+'-'+  
Right(Year(getdate()),2)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接