[英]SQL Server : convert string with format dddd mm/dd/yy to date
[英]How to convert the system date format to dd/mm/yy in SQL Server 2008 R2?
我正在使用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
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
下面的查询将导致dd/mm/yy
格式。
select LEFT(convert(varchar(10), @date, 103),6) + Right(Year(@date)+ 1,2)
尝试这个
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
select convert(varchar(8), getdate(), 3)
只需将此用于dd / mm / yy即可
select convert(varchar(8), getdate(), 1)
对于mm / dd / yy
下面的查询将导致dd-mmm-yy格式。
select
cast(DAY(getdate()) as varchar)+'-'+left(DATEname(m,getdate()),3)+'-'+
Right(Year(getdate()),2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.