将 TSQL 日期格式化为 mm-dd-yyyy

use*_*003 1 sql t-sql sql-server formatting date

我有一个 Datetime2 格式的日期,它的格式为 yyyy-mm-dd。有没有办法重新格式化它,使其格式为 mm-dd-yyyy?

                CASE 
                WHEN CAST(ai.[Due Date] AS DATETIME2)  < GETDATE() THEN '[due]' + LEFT((ai.[Due Date]),10)
                WHEN CAST(ai.[Due Date] AS DATETIME2) IS NULL THEN ' '
                ELSE LEFT((ai.[Due Date]),10)
            END AS [TD]
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

传统的方法是使用convert()

convert(varchar(10), ai.[Due Date], 110)
Run Code Online (Sandbox Code Playgroud)

更通用的方法使用format()

select format(ai.[Due Date], 'dd-MM-yyyy')
Run Code Online (Sandbox Code Playgroud)