sql - 无法在 oracle sql 中将时间戳转换为字符或日期
问题描述
我需要将时间戳值(19-01-21 09:15:00.000000 PM)转换为日期格式('YYYY/MM/DD HH24:MI:SS')。我正在尝试使用 to_char 函数来完成它(将其转换为 varchar 并在 TO_DATE 函数中使用它)。我在 to_char 函数中遇到错误。这是可行的方法还是请建议是否有更好的方法
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.
解决方案
'19-01-21 09:15:00.000000 PM'
是字符串文字;它不是一个DATE
或TIMESTAMP
数据类型。
由于您的字符串有小数秒,您可以使用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 |
如果您希望将值作为DATE
数据类型,那么您可以将先前的输出CAST
带到 a DATE
:
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 |
db<>在这里摆弄
我需要将时间戳值转换为
date
/varchar
值。
如果您想将值格式化为YYYY/MM/DD HH24:MI:SS
then ,您可以使用TO_TIMESTAMP
then 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 |
(注意:这会输出字符串数据类型而不是DATE
数据类型;如果您想要DATE
数据类型,请使用第二个或第三个示例。)
db<>在这里摆弄
推荐阅读
- python - psycopg2 和 SQLAlchemy 之间的执行时间差异
- python - Why do I keep on getting No module named: official error?
- javascript - validate WTForm after selectfield choices updated dynamically with jquery
- jquery - Trumbowyg: Insert text at caret not working
- ffmpeg - How to improve the output video quality with ffmpeg and h264_videotoolbox flag?
- python - For循环没有捕获函数列表中的所有项目
- c# - Dapper stored procedure mapping to complex object
- python - How to run a scheduled task to run a Flask app constantly?
- ios - Twitch 播放器:在从 twitch 播放器播放视频时出现错误 - “哎呀!这个嵌入配置错误”
- javascript - 我的数据没有从反应服务器到达后端节点服务器