我想导入一个 Excel 文件,其中时间格式为“00:00”(分钟:秒)。数据库中的相应字段指定为整数。
我可以使用哪个函数输入值并将其转换为相应的整数表示?例如:“02:39”应该返回“159”。
我尝试使用 Google 搜索并查看各种来源,例如: https ://www.postgresql.org/docs/current/functions-datetime.html 。但我找不到所需的函数
我想导入一个 Excel 文件,其中时间格式为“00:00”(分钟:秒)。数据库中的相应字段指定为整数。
我可以使用哪个函数输入值并将其转换为相应的整数表示?例如:“02:39”应该返回“159”。
我尝试使用 Google 搜索并查看各种来源,例如: https ://www.postgresql.org/docs/current/functions-datetime.html 。但我找不到所需的函数
没有本机函数可用于您正在寻找的转换。因此,解决方案是用户定义的函数。该函数需要获取格式化的字符串,将其解析为不同的部分,最后计算并返回秒数。幸运的是,这是一项简单的任务:
cte使用子字符串和位置字符串函数
time_miss
将输入字符串解析为其所需的小节 (mi
) 和秒 ( ) ;然后主选择计算总秒数。结果以 SQL 函数的形式返回。(参见演示)ss
通过一些日期算术可以实现这一点:
从时间或间隔值中提取“纪元”可得出间隔中的秒数。对于您的情况 (mm:ss),您需要在前面添加“00:”,否则文字将读作 hh:mm。hh、mm 和 ss 字段分别限制为 0-23 和 0-59。(对于间隔,小时字段可以大于 23)。
功能取决于 Postgresql 版本,我使用了 16。这里有一个带有稍微更复杂示例的小提琴。