将 db2 数据库中的浮点值转换为日期格式?

Posted

技术标签:

【中文标题】将 db2 数据库中的浮点值转换为日期格式?【英文标题】:Convert float value from a db2 database to a date format? 【发布时间】: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 【参考方案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

【讨论】:

以上是关于将 db2 数据库中的浮点值转换为日期格式?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHPExcel 库读取 excel 一个单元格日期(DD/MM/YYYY)值并将日期格式转换为(M/D/YYYY)

如何在javascript中将浮点值转换为日期时间格式

BigQuery 帮助 - 如何转换并转换为浮点和日期格式

在 db2 中将字符串日期(yyyy/mm/dd)转换为日期格式

如何将EXCEL表格中的出生日期格式快速转换?

怎么把日期变为数字格式