想把一个日期格式的字段转换成【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】呀谢谢了

解决方案 »

  1.   


    SELECT CAST( DATEPART( HH, GETDATE() ) AS VARCHAR(2) ) +
           CAST( DATEPART( MI, GETDATE() ) AS VARCHAR(2) ) +
           SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 17, 1)
      

  2.   

    SELECT right('0000'+SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 12, 2) +
     SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 15, 2) +
     SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 17, 1),5)
      

  3.   

    SELECT SUBSTRING( CONVERT( VARCHAR(19), GETDATE(), 20 ), 12, 2 ) +
           SUBSTRING( CONVERT( VARCHAR(19), GETDATE(), 20 ), 15, 2 ) +
           SUBSTRING(CONVERT(varchar(18), GETDATE(), 0), 17, 1)
      

  4.   

    是这样吗: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
    */ 
      

  5.   

    结果是:1107P
    select substring(CONVERT(varchar(20),getdate(),112),5,4) + 
    case when DATEPART(HOUR,GETDATE())<12 then 'A' else 'P' end
      

  6.   

    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)
      

  7.   

    是要按时间的话这样:1343P
    select replace(substring(CONVERT(varchar(20),getdate(),120),12,5),':','') + 
    case when DATEPART(HOUR,GETDATE())<12 then 'A' else 'P' end