Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL Server 2008 R2中将系统日期格式转换为dd/mm/yy?_Sql_Sql Server_Sql Server 2008_Sql Server 2005_Sql Server 2008 R2 - Fatal编程技术网

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

如何在SQL Server 2008 R2中将系统日期格式转换为dd/mm/yy?,sql,sql-server,sql-server-2008,sql-server-2005,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008,Sql Server 2005,Sql Server 2008 R2,我正在使用SQLServer2008R2。我想将系统日期转换为以下格式: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,则只有我更改为分数计算-dd/mm/yy 我

我正在使用SQLServer2008R2。我想将系统日期转换为以下格式:
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
,则只有我更改为
分数计算-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
看看这个。我假设D30.SPGD30_TRACKED_ADJUSTMENT_X是日期时间数据类型。
这就是我使用
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
编辑:


有关转换为其他日期格式的信息,请参见此链接:

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

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

    • 以下查询将生成dd-mmm-yy格式

      select 
      cast(DAY(getdate()) as varchar)+'-'+left(DATEname(m,getdate()),3)+'-'+  
      Right(Year(getdate()),2)
      
      试试这个

      SELECT CONVERT(varchar(11),getdate(),101) -- Converts to 'mm/dd/yyyy'
      
      SELECT CONVERT(varchar(11),getdate(),103) -- Converts to 'dd/mm/yyyy'
      
      更多信息请点击此处:

      只需将其用于dd/mm/yy即可 还有这个

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

      对于mm/dd/yy

      你是如何得到日期的
      10
      因为你的日期是
      01
      我想转换列名“D30.SPGD30_TRACKED_ADJUSTMENT_X”,我可以把它放在“D30.SPGD30_TRACKED_ADJUSTMENT_X”一个日期时间列中?它不起作用。如果“-”包含,然后,只有我将日期格式更改为dd/mm/yy。此列包含1。“DMS01A13010101”,2。“RMS01A13010201”,3。"44" ,4. “2013-01-01 00:00:00.000”确定,则不需要在when子句中使用CAST(),而是在then子句中使用CAST()将列转换为datetime。
      SELECT CONVERT(varchar(11),getdate(),101) -- Converts to 'mm/dd/yyyy'
      
      SELECT CONVERT(varchar(11),getdate(),103) -- Converts to 'dd/mm/yyyy'
      
      select convert(varchar(8), getdate(), 3)
      
      select convert(varchar(8), getdate(), 1)