oracle - 使用 Oracle to_date 函数获取带毫秒的日期字符串

标签 oracle to-date

我必须在 Oracle 数据库中执行一些插入操作。我有一些约会 格式如下

'23.12.2011 13:01:001'

按照我编写的文档插入to_date,如下所示:

to_date('23.12.2011 13:01:01', 'DD.MM.YYYY HH24:MI:SS')

工作正常。现在我的日期格式为毫秒

'23.12.2011 13:01:001'

我尝试过以下方法:

to_date('23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3')

这是不正确的(产生错误 01821.00000 - “日期格式无法识别”)。

对于这种以毫秒为单位的格式,我应该使用哪个“字符串”?

最佳答案

Oracle DATE 存储的时间精度不会超过一秒。您无法在 DATE 列中存储毫秒精度数据。

您的两个选择是在将毫秒字符串转换为 DATE 之前截断它,即

to_date( substr('23.12.2011 13:01:001', 1, 19), 'DD.MM.YYYY HH24:MI:SS' )

或者将字符串转换为支持毫秒精度的TIMESTAMP

to_timestamp( '23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3' )

关于oracle - 使用 Oracle to_date 函数获取带毫秒的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9180014/

相关文章:

java - 如何通过 Oracle 函数 to_date() 将 java 格式的 ddMMyyyyHmmss 字符串转换为日期?

sql - Oracle 中的 ansi SQL 日期函数

java - 在 H2 数据库中找不到函数 "TO_DATE"

postgresql - 在 postgres 中标准化日期 - 迄今为止的字符

SQL Oracle 计数集群

java - java webapp和oracle中的日语字符

database - 当用户在事务完成之前关闭浏览器选项卡/窗口时,数据库 session 会发生什么情况?

SQL MAX 函数奇怪的行为

sql - 如果引用了 customer 表,我如何将数据插入到 cars 表中?

sql - 如何使用 to_date 函数转换复杂的 sysdate + 其他内容?