Oracle sql developer中的时间戳数据类型

Oracle sql developer中的时间戳数据类型,oracle,oracle-sqldeveloper,Oracle,Oracle Sqldeveloper,在SQL Developer中,我有一个字段,它的类型是timestamp(6) 当我尝试在该字段中插入如下数据时:2013-07-10 12:22:22,SQL Developer显示错误:不是有效月份 我在sql developer中有以下设置: 你能告诉我为什么会发生这个错误吗?因为你的NLS\u TIMESTAMP\u格式有一个错误;您有两次MM元素。应该是: YYYY-MM-DD HH24:MI:SS 如果仅对小时元素使用HH,则无法区分上午和下午时间HH24将为您提供凌晨1点的0

在SQL Developer中,我有一个字段,它的类型是
timestamp(6)

当我尝试在该字段中插入如下数据时:
2013-07-10 12:22:22
,SQL Developer显示错误:
不是有效月份

我在sql developer中有以下设置:


你能告诉我为什么会发生这个错误吗?

因为你的NLS\u TIMESTAMP\u格式有一个错误;您有两次
MM
元素。应该是:

YYYY-MM-DD HH24:MI:SS
如果仅对小时元素使用
HH
,则无法区分上午和下午时间<例如,code>HH24将为您提供凌晨1点的
01
和下午1点的
13
。分钟元素是
MI
,而不是
MM
。目前,它试图将
22
解释为一个月数,正如错误所说,这是无效的

但是如果你不想要分数秒,为什么要在日期上使用时间戳呢


通常,您不应该依赖NLS设置。在非特别查询中,最好使用
to_timestamp('2013-07-10 12:22:22',YYYY-MM-DD HH24:MI:SS')
以避免其他人使用不同NLS设置运行代码时出现任何歧义和意外情况。

因为您的NLS_timestamp格式有错误;您有两次
MM
元素。应该是:

YYYY-MM-DD HH24:MI:SS
如果仅对小时元素使用
HH
,则无法区分上午和下午时间<例如,code>HH24将为您提供凌晨1点的
01
和下午1点的
13
。分钟元素是
MI
,而不是
MM
。目前,它试图将
22
解释为一个月数,正如错误所说,这是无效的

但是如果你不想要分数秒,为什么要在日期上使用时间戳呢


通常,您不应该依赖NLS设置。在非临时查询中,最好使用
to_timestamp('2013-07-10 12:22:22',YYYY-MM-DD HH24:MI:SS')
以避免其他人使用不同NLS设置运行代码时出现任何歧义和意外情况。

SQL Server不是oracle。反之亦然:-从dual中选择sysdate;检查当前系统的日期设置,然后插入accordingly@Mat---以及如何将
的格式字符串参数更改为
YYYY-MM-DD HH:MM:SS
为\u timestamp()
默认函数@Rahul
select sysdate from dual
返回:
2013-10-13
SQL Server不是oracle。反之亦然:-从dual中选择sysdate;检查当前系统的日期设置,然后插入accordingly@Mat---以及如何将
的格式字符串参数更改为
YYYY-MM-DD HH:MM:SS
为\u timestamp()
默认函数@Rahul
select sysdate from dual
返回:
2013-10-13