【问题标题】:Time stored in VARCHAR field Add to Date for Date/Time存储在 VARCHAR 字段中的时间 添加到日期/时间的日期
【发布时间】:2021-09-03 06:15:17
【问题描述】:

我有一个 StartTime 作为 Varchar 存储在 Oracle 数据库中。我也有一个日期字段。我想创建一个日期/时间字段。我可以帮忙把这两个结合起来吗?非常感谢!

我的时间字段是这样的:

SITE_START_TIME
11:05
01:23
09:30
09:40
12:30

我的日期字段是这样的:

09-SEP-21
21-SEP-21
30-SEP-21
10-SEP-21
01-SEP-21

【问题讨论】:

  • 你的日期列是什么数据类型?
  • 感谢@MatBailie 修复我的帖子!日期字段是日期类型

标签: sql oracle


【解决方案1】:

这是一个类似的问题...adding time to date in oracle

这给了...

date_column + to_dsinterval('0 ' || site_start_time || ':00')

【讨论】:

  • Mat,我在您建议的代码上收到此错误:您指定的字符串不是有效的间隔。
【解决方案2】:

一种选择是

to_date( to_char( date_column, 'yyyy-mm-dd' ) || ' ' || site_start_time,
         'yyyy-mm-dd hh24:mi' );

您可以使用字符串生成一个间隔并将其添加到实际日期

date_column +
  to_dsInterval( '0 ' || site_start_time || ':00' )

请注意,Oracle date 始终包含日期和时间部分。因此,将一天和时间存储在单独的列中并没有什么意义。只需将实际的date 值与时间一起存储在date 列中即可。

【讨论】:

  • 贾斯汀,
    告诉我吧!我问程序员为什么将时间存储为文本字段。我无法让他纠正这一点。
  • 我如何断线??在这里??
  • @ScottW - 我不确定你问的是什么换行符
  • @ScottW 您不能在 cmets 中使用换行符。一些格式有效,大多数无效,并且仅限于在问题和答案中使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
相关资源
最近更新 更多