我想从时间戳访问past-midnight time
并将其转换为秒,然后将它们加在一起以获得秒AS seconds
的完整值。
我在试着-
SELECT
TO_NUMBER(TO_CHAR(a.date_column, 'hhhhh')) * 3600 +
TO_NUMBER(TO_CHAR(a.date_column, 'mmmmm')) * 60 +
TO_NUMBER(TO_CHAR(a.date_column, 'sssss')) AS seconds
FROM
DUAL
字符串
但我得到了标题中提到的错误。
说明-a.date_column
是varchar
,通过-
TO_TIMESTAMP(TO_CHAR(a.dte, 'YYYY/MM/DD') || ' ' || a.time, 'YYYY/MM/DD HH24:MI:SS:FF3') AS date_column
型
看起来像是
date_column
2018-04-02 04:24:22:000
2018-04-03 03:44:34:000
2018-04-04 02:19:45:000
2018-04-04 04:33:34:000
型
我希望得到以秒为单位的总值。例如-12876
1条答案
按热度按时间wztqucjr1#
使用
EXTRACT
:字符串
其中,对于样本数据:
型
输出午夜后的秒数:
| 秒| SECONDS |
| --| ------------ |
| 0个| 0 |
| 一个| 1 |
| 六十| 60 |
| 三千六百| 3600 |
| 86399.999| 86399.999 |
对于您的示例数据:
型
输出午夜后的秒数:
| 秒| SECONDS |
| --| ------------ |
| 15862| 15862 |
| 一三四七四| 13474 |
| 八三八五| 8385 |
| 一六四一四| 16414 |
如果你想计算所有这些值的总和,那么使用
SUM
:型
哪些输出:
| SECONDS |
| ------------ |
| 54135 |
(And如果你想得到一天以上的总数,并且你想把它限制在午夜后的时间,那么使用
MOD(total, 86400)
。如果需要不同的方法,则可以将
TO_CHAR
与HH24
、MI
和SS.FF
模型或SSSSS.FF
模型一起使用(如果使用的是DATE
数据类型,而不是TIMESTAMP
s,则不需要FF
,DATE
数据类型具有时间分量但没有小数秒,其也具有时间分量,但是可以具有小数秒)。举例来说:
型
输出:
| 秒|秒数2|秒数3| SECONDS3 |
| --|--|--| ------------ |
| 15862| 15862| 15862.000000000| 15862.000000000 |
| 一三四七四|一三四七四|13474.000000000| 13474.000000000 |
| 八三八五|八三八五|08385.000000000| 08385.000000000 |
| 一六四一四|一六四一四|16414.000000000| 16414.000000000 |
fiddle