将 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.268113
到8/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)