简单的Oracle查询:文字与格式字符串不匹配
-
28-10-2019 - |
题
我想在Oracle中执行一个简单的函数。签名定义如下: 通用标签
我应该能够使用: 通用标签
但是当键入“ newcaselistforvalidation('2010-01-01','2011-01-01',100)”时,我得到: 通用标签
我在Google上搜索了一下,似乎无法弄清楚以正确的格式键入日期。谁能帮我吗?
解决方案
在Oracle中查询NLS_PARAMETERS,您将能够查看数据库接受日期的格式。
但是通常我使用to_date()函数: 通用标签
在英国输入我的日期。
其他提示
to_date()函数的替代方法是对DATE或TIMESTAMP文字使用ANSI标准格式: 通用标签
日期和时间始终使用ISO规则指定(YYYY-MM-DD和24小时格式)
这也适用于许多其他(符合标准的)DBMS。
最好不要依赖 NLS_PARAMETERS 设置中的特定值, 因为这会使您的功能在环境中与另一个 NLS_DATE_FORMAT 断开连接。
我将按照上面答案的建议在您的函数中明确指定日期格式 通用标签
插入tblDate(dateStart) 值(“ 2013年6月20日”); 如果将月份整数更改为字符串,则“ DD-MON-YYYY”将作为有效的数据字符串,而不必在其前加上DATE标识符。
不隶属于 StackOverflow