将 to_char(..,'MON-YYYY') 转换为 sql 服务器

convert to_char(..,'MON-YYYY') into sql server

我有以下关于 plsql 的查询

SELECT to_char(add_months(l_max_date, l_rec.MON_INTERVAL),'MON-YYYY')
   FROM    dual

我希望用 sql 服务器

编写它
  select CONVERT(VARCHAR(2),MONTH(DATEADD(mm, MON_INTERVAL, l_max_date)))
from  rec 

怎么写

to_char(..,'MON-YYYY') into sql server 

SQL 服务器中没有 default date format 这样的。你必须想出你自己的。

SELECT datename(month, getdate())
       + '-'
       + convert(nvarchar, year(getdate()))

你可以这样做:

SELECT
    SubString(Convert(Varchar(Max), tbl.theDate,0), 1, 3) + '-' 
    + Cast(Year(tbl.theDate) As Varchar(Max))
FROM
(
    select CONVERT(VARCHAR(2),MONTH(DATEADD(mm, MON_INTERVAL, l_max_date))) as theDate
    from  rec 
) AS tbl

在 SQL Server 2012+ 中,您可以使用 FORMAT 函数使用与在 .NET 中使用的相同格式字符串来格式化值:

SELECT FORMAT(GETDATE(),'MMM-yyyy')