我想用 Oracle 数据库实现以下功能。
当前的
table FTE
f_date f_stime f_eDate f_etime
20191125 14:00 20191125 14:01
Run Code Online (Sandbox Code Playgroud)
期望:
table FTE
f_date f_stime f_eDate f_etime f_Sdatetime f_Edatetime
20191125 14:00 20191125 14:01 2019/11/25 14:00 2019/11/25 14:01
Run Code Online (Sandbox Code Playgroud)
日期格式是一个需要转换为日期的数字。我用这个to_date功能实现了这一点。
时间格式也是一个数字。
我可以使用哪个功能来实现这一点?
这是一种方法,TO_DATE与字符串连接一起使用:
SELECT
f_date,
f_stime,
f_eDate,
f_etime,
TO_DATE(f_date || f_stime, 'YYYYMMDDHH24:MI') AS f_Sdatetime,
TO_DATE(f_eDate || f_etime, 'YYYYMMDDHH24:MI') AS f_Edatetime
FROM FTE;
Run Code Online (Sandbox Code Playgroud)
这假设您只想使用日期和时间组件形成日期时间。如果您还想以您向我们展示的确切格式查看这些日期时间,那么您必须TO_CHAR使用适当的掩码进行额外调用:
SELECT
f_date,
f_stime,
f_eDate,
f_etime,
TO_CHAR(TO_DATE(f_date || f_stime, 'YYYYMMDDHH24:MI'), 'YYYY/MM/DD HH24:MI') AS f_Sdatetime,
TO_CHAR(TO_DATE(f_eDate || f_etime, 'YYYYMMDDHH24:MI'), 'YYYY/MM/DD HH24:MI') AS f_Edatetime
FROM FTE;
Run Code Online (Sandbox Code Playgroud)
请注意,这里最好的解决方案可能是不要单独存储日期和时间组件,这将避免我们现在正在做的 SQL 杂技。只需使用单个日期时间/时间戳列。
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |