【问题标题】:Convert float value from a db2 database to a date format?将 db2 数据库中的浮点值转换为日期格式?
【发布时间】:2021-08-09 10:02:25
【问题描述】:

我有一个来自自定义应用程序的数据库。 数据库中某个日期的值为44416.254005,使用此数据库的应用程序将该数字解析为下一个日期8/8/2021 6:05:46 AM。 另一个例子是44416.2681138/8/2021 6:26:05 AM。 前任。 44328.93713 = 2021 年 5 月 12 日晚上 10:29:28

我有这个数据库的旧备份,需要弄清楚转换是如何进行的?

【问题讨论】:

  • 稍微不同的示例时间戳会让我们所有人都更容易。
  • 2021 年 8 月 8 日,是 8 月 8 日还是 8 月 8 日?标准 SQL 需要 ISO 8601 格式,YYYY-MM-DD。
  • 44328.93713 = 2021 年 5 月 12 日晚上 10:29:28
  • 整数部分表示自 1899-12-30 以来的天数。
  • 小数部分表示一天的多少。例如。 .750000 表示6:00:00 PM

标签: sql db2


【解决方案1】:

这看起来像是日期的 Excel 格式。如果是这样,您可以转换为秒并添加到1899-12-31

select timestamp '1899-12-31 00:00:00' + (44416.268113 * 60 * 60 * 24) second

【讨论】:

  • 我需要一个只有小数部分的公式才能将其转换为常规时间。
【解决方案2】:
import datetime

def xldate_to_datetime(xldate):
    start = datetime.datetime(1899, 12, 30)
    delta = datetime.timedelta(days=xldate)
    return start + delta

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 2012-05-20
    • 2021-07-07
    相关资源
    最近更新 更多