我有个问题.当我在SQL Server 2012中执行下一句时:
TO_DATE('2011-11-09 00:00:00','YYYY-MM-DD HH24:MI:SS')
Run Code Online (Sandbox Code Playgroud)
我收到错误:
'TO_DATE' not is a name de function integrate recognized.
Run Code Online (Sandbox Code Playgroud)
解决办法是什么?
谢谢!
SQL-Server没有任何TO_DATE 功能.你必须使用convert.看到这里
-- Specify a datetime string and its exact format
SELECT TO_DATE('2012-06-05', 'YYYY-MM-DD') FROM dual;
-- Specify a datetime string and style 102 (ANSI format), raises an error if conversion fails
SELECT CONVERT(DATETIME, '2012-06-05', 102);
-- TRY_CONVERT available since SQL Server 2012 (returns NULL if conversion fails)
SELECT TRY_CONVERT(DATETIME, '2012-06-05', 102);
Run Code Online (Sandbox Code Playgroud)
根据您的具体情况使用:
convert(DATETIME, '2011-11-09 00:00:00')
Run Code Online (Sandbox Code Playgroud)
TO_DATE() 不是 SQL Server (T-SQL) 中的有效函数
替代方案取决于您使用的 SQL Server 版本
CAST() 或 CONVERT()可用于任何版本。从 SQL Server 2012 开始,可以使用TRY_CAST()或TRY_CONVERT()。使用后一对的优点是,如果字符串在返回 null 时无法转换,则它们不会出错。
对于通常使用 CONVERT() 或 TRY_CONVERT() 的日期/时间字符串,因为您可以传递“样式”数字,其中 YYYY-MM-DD 是“样式”102,例如
SELECT TRY_CONVERT(DATE,'2017-01-21',102)
Run Code Online (Sandbox Code Playgroud)
但是,可以像这个例子一样使用 CAST/TRY_CAST:
SET DATEFORMAT mdy;
SELECT TRY_CAST('12/31/2016' AS datetime)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31581 次 |
| 最近记录: |