日期:2014-05-17  浏览次数:20648 次

时间格式转换
想把一个日期格式的字段转换成【0801A】的格式
但是用
SELECT SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 12, 2) +
 SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 15, 2) +
 SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 17, 1)
的话,过了10点还好是【1001A】
10点之前的话就会变成【 801A】

怎么能把这个【 801A】变成【0801A】呀

谢谢了

------解决方案--------------------

SELECT CAST( DATEPART( HH, GETDATE() ) AS VARCHAR(2) ) +
       CAST( DATEPART( MI, GETDATE() ) AS VARCHAR(2) ) +
       SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 17, 1)
------解决方案--------------------
是这样吗:

SELECT right('00'+ltrim(SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 12, 2)),2) +
 SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 15, 2) +
 SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 17, 1)
/*
0125P
*/ 

------解决方案--------------------
SELECT replace('0'+SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 12, 2),' ','') +
 SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 15, 2) +
 SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 17, 1)