Use TO_DATE in sql server 2012
我有个问题。
当我在SQL Server 2012中执行下一个句子时:
1 | TO_DATE('2011-11-09 00:00:00','YYYY-MM-DD HH24:MI:SS') |
我收到错误消息:
1 | 'TO_DATE' not is a name de function integrate recognized. |
解决办法是什么?
谢谢!
SQL Server没有
看这里
1 2 3 4 5 6 7 8 9 | -- 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); |
对于您的特定情况,请使用:
1 | convert(DATETIME, '2011-11-09 00:00:00') |
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,例如
1 | SELECT TRY_CONVERT(DATE,'2017-01-21',102) |
但是,可以像以下示例一样使用CAST / TRY_CAST:
1 2 | SET DATEFORMAT mdy; SELECT TRY_CAST('12/31/2016' AS datetime) |