我正在尝试在sql中执行以下内置函数,但它给出了错误,表明此函数不存在
我的疑问:
select EmpId, EmpName, format(EmpJoinDate, "YYYY-DD-MM") as date from Employee
我得到的错误:
'format' is not a recognized built-in function name
可能是什么问题,或者我做错了什么?
谢谢!
答案 0 :(得分:10)
请改用Convert
功能。例如:
select convert(varchar(5), GETDATE(), 126) + convert(varchar(5), GETDATE(), 105)
答案 1 :(得分:5)
那是因为FORMAT()
不是SQL 2005中的内置函数。您需要使用CONVERT()
函数:
SELECT
EmpId,
EmpName,
REPLACE(CONVERT(VARCHAR(10), EmpJoinDate, 102), '.', '-') AS date
FROM
Employee
一些警告虽然......“日期”是我认为的保留字,所以我不会建议使用它,即使作为列别名。而且,以上实际上给出了YYYY-MM-DD。我相信YYYY-DD-MM非常罕见。如果您真的希望自己需要使用DATEPART
和CAST
函数将自己连接在一起,或者使用SUBSTRING
将CONVERT
与CONVERT
连接起来。
在{{1}}上进行搜索,您应该能够找到所有支持的格式。我上面使用的那个(102)是YYYY.MM.DD,所以我做了一个替换来代替连字符。
答案 2 :(得分:2)
根据MSDN文档http://msdn.microsoft.com/en-us/library/hh213505(SQL.110).aspx,它是一个内置函数。我假设它尚未实施。
答案 3 :(得分:0)
其他答案可行,但使用一些hacky字符串替换和concats。虽然您可以将date_style
设置为23以直接转换为“YYYY-DD-MM”格式:
convert(varchar(10), EmpJoinDate, 23)
有关格式的完整列表,我想参考这个非常棒的答案:https://stackoverflow.com/a/19537658/2140636