如何在SQL Server 2008中转换Date.Now.ToString("yyyy_MM_yy_HH_mm_ss_ms")?

use*_*567 0 sql sql-server formatting datetime sql-server-2008-r2

我有一个C#语句:

Date.Now.ToString("yyyy_MM_yy_HH_mm_ss_ms") 
Run Code Online (Sandbox Code Playgroud)

现在,我需要在SQL Server 2008 R2中使用相同的功能.我知道我可以GETDATE用于当前日期.但是无法获得这种格式.

Joe*_*eph 5

试试这个:

select cast(year(getdate()) as char(4))+'_'+
       case when month(getdate())<10 then '0'+cast(month(getdate()) as char(1)) else cast(month(getdate()) as char(2)) end+'_'+
       right(cast(datepart(yy,getdate()) as char(4)),2)+'_'+
       replace(replace(right(convert(varchar(22),getdate(),121),11),':','_'),'.','_')
Run Code Online (Sandbox Code Playgroud)

SQL小提琴演示