SQL> create table test (col timestamp);
Table created.
SQL> insert into test (col) values (to_timestamp('2013-01-01 00:00:00.0000', 'yyyy-mm-dd hh24:mi:ss:ff6'));
1 row created.
里面有什么( alter session 只是以所需格式显示结果;它不影响该列中存储的值):
SQL> alter session set nls_timestamp_format = 'dd.mm.yyyy hh24:mi:ss.ff6';
Session altered.
SQL> select * From test;
COL
---------------------------------------------------------------------------
01.01.2013 00:00:00.000000
SQL>
3条答案
按热度按时间qpgpyjmq1#
列数据类型应为
TIMESTAMP
. 在中使用适当的格式掩码TO_TIMESTAMP
功能。里面有什么(
alter session
只是以所需格式显示结果;它不影响该列中存储的值):xa9qqrwz2#
最简单的方法是使用文字时间戳,因此不依赖隐式转换:
你也可以使用
to_timestamp()
:另一方面,如果确实要处理字符串,则需要在以下操作之前将nls设置更改为自己的格式:
然后可以在查询中直接使用pass传递字符串值,oracle将在插入时隐式地将其转换为目标数据类型。
sdnqo3pr3#
你没有时间成分,所以我只能用:
这是最安全的语法(也是最清晰和标准的!)用于提供日期值。
如果oracle需要一个时间戳,它会正确地转换它。