【发布时间】:2018-05-12 13:57:38
【问题描述】:
我正在使用一个完全混乱的数据库,需要找出修复它的最佳方法。现在我有进入这个表格的时间是 12 小时和 24 小时格式(有些是 01:30 PM,有些是 13:30 PM)。为了正确地将预定时间与实际时间进行比较,我需要采用标准化的 24 小时格式。
示例表如下: 注意我不能做任何永久性更改,因为我没有这些数据的权限。
Sched St Date Sched Time Actual Start Actual End
09/11/2017 00:00:00 11:30 AM 09/11/2017 11:34:16 09/11/2017 11:58:00
05/26/2017 00:00:00 03:30 PM 05/26/2017 15:40:00 05/26/2017 15:55:15
11/06/2017 00:00:00 19:30 PM 11/06/2017 21:25:00 11/06/2017 21:45:00
现在我有:
Select DB.TBL.*,
case when left (Sched_Time, 2) > 12
and Sched_Time like '%PM%'
then concat((left(Sched_Time, 2) - 12),right(Sched_Time, 6))
Else concat(Left(Sched_Time,2)right(Sched_Time, 6))
End;
当我尝试连接以获得全时(即 07:00 PM)时出现错误。任何人都可以用一种干净的方式帮助我吗?
【问题讨论】:
-
我无法从您的示例中看出,您的实际列和类型是什么?
-
@Andrew Sched_St_Date (TimeStamp(6)), Sched_Time (varchar(255)), Actual_Start (TimeStamp(6)), Actual_End (TimeStamp(6))
标签: sql teradata teradata-sql-assistant