当前位置: 首页 > 知识库问答 >
问题:

在oracle sql中无法将时间戳转换为字符或日期

严亦
2023-03-14
select TO_CHAR('19-01-21 09:15:00.000000 PM','DD-MM-YY HH:MI:SSxFF AM') from dual; 
select TO_DATE(TO_CHAR('19-01-21 09:15:00.000000 PM','DD-MM-YYYY HH:MI:SSxFF AM'),'YYYY/MM/DD HH24:MI:SS'  ) from dual;

我得到以下错误:

ORA-01722: invalid number
01722. 00000 -  "invalid number"
*Cause:    The specified number was invalid.
*Action:   Specify a valid number.

共有1个答案

史俊德
2023-03-14

'19-01-21 09:15:00.000000 pm'是字符串文本;它不是datetimestamp数据类型。

由于字符串具有小数秒,因此可以使用to_timestamp将其转换为timestamp数据类型:

SELECT TO_TIMESTAMP( '19-01-21 09:15:00.000000 PM', 'DD-MM-RR HH12:MI:SS.FF6 AM' )
         AS timestamp_value
FROM   DUAL;

哪些产出:

| TIMESTAMP_VALUE               |
| :---------------------------- |
| 2021-01-19 21:15:00.000000000 |
SELECT CAST(
         TO_TIMESTAMP( '19-01-21 09:15:00.000000 PM', 'DD-MM-RR HH12:MI:SS.FF6 AM' )
         AS DATE
       ) AS date_value
FROM   DUAL;
SELECT TO_DATE( '19-01-21 09:15:00.000000 PM', 'DD-MM-RR HH12:MI:SS".000000" AM' )
         AS date_value
FROM   DUAL;
| DATE_VALUE          |
| :------------------ |
| 2021-01-19 21:15:00 |

我需要将时间戳值转换为date/varchar值。

如果要将值格式化为yyyy/mm/dd hh24:mi:ss,则可以使用to_timestamp,然后使用to_char:

SELECT TO_CHAR(
         TO_TIMESTAMP( '19-01-21 09:15:00.000000 PM', 'DD-MM-RR HH12:MI:SS.FF6 AM' ),
         'YYYY/MM/DD HH24:MI:SS'
       ) AS date_string
FROM   DUAL;

哪些产出:

| DATE_STRING         |
| :------------------ |
| 2021/01/19 21:15:00 |
 类似资料:
  • 问题内容: 如何将以下格式转换为Unix时间戳? 我从数据库获得的格式似乎最后有。我尝试使用以下方法,但没有用: 问题答案: 试试这个查询 此查询

  • 如何将以下格式转换为unix时间戳? 我从DB获得的格式似乎末尾有。我尝试使用以下方法,但没有成功:

  • 问题内容: 我想在Java中将字符串Date转换为Timestamp。我写了以下代码。我声明date1的日期为:7-11-11 12:13:14。 我想将此字符串日期7-11-11 12:13:14转换为时间戳。现在我得到的输出是0007-11-11 00:13:14.000000 +05:30:00但我想要(7-11-11 12:13:14)这种格式的时间戳记日期。谁能帮帮我吗。谢谢。 问题答案

  • 问题内容: 我正在开发一个具有聚类列的时间序列数据模型,即 我希望针对分区列“ id”和集群列“ time”执行选择。例如,id:=‘1’,时间戳:=‘2017-10-09’ 检查iterable.Close()的err后,发现编组错误 {“错误”:[“无法将字符串编组为时间戳”]} 我该如何解决? 问题答案: 这是我最后通过将字符串文字(带有时间戳)转换为类型time来解决此问题的方法。

  • 我试图找出如何在Kotlin中将转换为,这在Java中非常简单,但我在Kotlin中找不到任何等效的。 例如:历元时间戳(1970-01-01以来的秒数)== 在Kotlin中是否有解决方案,或者我是否必须在Kotln中使用Java语法?请给我一个简单的例子来说明如何解决这个问题。提前谢谢。 这个链接不是我问题的答案

  • 问题内容: 如何在Java中将分钟从Unix时间戳转换为日期和时间。例如,时间戳1372339860对应于。 我想转换成。 编辑:其实我希望它是根据美国时间GMT-4,所以它将是。 问题答案: 你可以使用SimlpeDateFormat来格式化日期,如下所示: 如果使用的模式SimpleDateFormat非常灵活,则可以根据给定的特定模式,在javadocs中检入可用于产生不同格式的所有变体Da