3 回答

TA贡献2003条经验 获得超2个赞
您可以使用SET DATEFORMAT保证日期-月份-年份的订单。这意味着ISDATE会将“ 15-07-2009”解析为2009年7月15日
否则,鉴于外部限制,您的方法就足够好了...但是您也可以重新排序为ANSI / ISO。
在marc_s回答之后:“ SET DATEFORMAT dmy”适用于大多数欧洲设置...
好:
SET LANGUAGE british
SELECT ISDATE('2009-07-15') --this is ansi says marc_s. It gives "zero"
SELECT ISDATE('2009-07-15T11:22:33') --this really is ANSI and gives true
SET LANGUAGE german
SELECT ISDATE('2009-07-15') --false
SELECT ISDATE('2009-07-15T11:22:33') --true

TA贡献1873条经验 获得超9个赞
我的系统处于受控环境中,不会出现瑞士-德国日期转换问题。我确实喜欢尝试捕捉的想法。我可能会删除IF ISDATE()和@Temp,然后在执行SET @ Destination = LEFT(@ Source,2)+'/'+ SUBSTRING(@ Source,3,2)时捕获转换错误(如果有的话) +'/'+ RIGHT(@ Source,4)
- 3 回答
- 0 关注
- 460 浏览
添加回答
举报