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 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
4

5 回答 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 是 datetime 数据类型。
这就是为什么我使用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

于 2013-02-22T05:13:50.510 回答
2

下面的查询将产生dd/mm/yy格式。

select  LEFT(convert(varchar(10), @date, 103),6) + Right(Year(@date)+ 1,2)
于 2013-02-22T05:14:17.343 回答
1

试试这个

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

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

更多信息在这里:https ://msdn.microsoft.com/en-us/library/ms187928.aspx

于 2016-01-05T12:17:21.407 回答
1
select convert(varchar(8), getdate(), 3)

只需将其用于 dd/mm/yy 和此

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

对于 mm/dd/yy

于 2018-02-21T20:36:31.923 回答
0

下面的查询将产生 dd-mmm-yy 格式。

select 
cast(DAY(getdate()) as varchar)+'-'+left(DATEname(m,getdate()),3)+'-'+  
Right(Year(getdate()),2)
于 2016-01-05T09:28:30.117 回答