12 sql t-sql format sql-server-2005 sql-server-2008
我试图在sql中执行以下内置函数,但它给了我错误,该函数不存在
我的查询:
select EmpId, EmpName, format(EmpJoinDate, "YYYY-DD-MM") as date from Employee
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
'format' is not a recognized built-in function name
Run Code Online (Sandbox Code Playgroud)
可能是什么问题,或者我做错了什么?
谢谢!
Kir*_*huk 10
请改用Convert功能.例:
select convert(varchar(5), GETDATE(), 126) + convert(varchar(5), GETDATE(), 105)
Run Code Online (Sandbox Code Playgroud)
那是因为FORMAT()它不是SQL 2005中的内置函数.您需要使用以下CONVERT()函数:
SELECT
EmpId,
EmpName,
REPLACE(CONVERT(VARCHAR(10), EmpJoinDate, 102), '.', '-') AS date
FROM
Employee
Run Code Online (Sandbox Code Playgroud)
虽然有一些警告......"日期"是我认为的保留字,所以我不建议使用它,即使是列别名.而且,以上实际上给出了YYYY-MM-DD.我相信YYYY-DD-MM非常罕见.如果你真的想要你需要将自己与函数DATEPART和CAST函数连接在一起,或者使用SUBSTRINGwith来连接CONVERT.
进行搜索CONVERT,您应该能够找到所有支持的格式.我上面使用的那个(102)是YYYY.MM.DD,所以我做了一个替换来代替连字符.