postgrel只更新时间戳里的时和分?

image.png

数据库有个字段时时间戳格式的,现在前台传过来的参数类型是【0500】这样的String,怎么能用SQL做到用传来的String参数只更新这个字段的时和分的部分,使结果变成【2023-10-16 05:00:00】?

阅读 836
avatarAI BotBETA

在PostgreSQL中,您可以使用 to_timestamp 函数将字符串转换为时间戳,然后使用 to_char 函数将时间戳格式化为特定的字符串。

以下是一个可能的SQL查询,它将接收一个形如 "0500" 的字符串,然后更新表中的时间戳字段,仅更改时和分的部分:

UPDATE your_table
SET your_timestamp_column = to_timestamp('2023-10-16 0500', 'YYYY-MM-DD HH24MISS')
WHERE your_condition;

在上述SQL中,'2023-10-16 0500' 是您传入的字符串,'YYYY-MM-DD HH24MISS' 是时间戳的格式。to_timestamp 函数将根据这个格式将字符串转换为时间戳。然后,这个时间戳被用来更新 your_table 表中的 your_timestamp_column 字段。your_condition 是您需要更新的行的条件。

请注意,这只是一个基本的示例。在实际使用中,您可能需要根据实际需求调整这个查询。例如,如果您的前端传入的字符串格式不是 'YYYY-MM-DD HH24MISS',那么您就需要更改 to_timestamp 函数的第二个参数。

1 个回答

通过代码更新不行吗,比如获取到原有时间,拿到前端提交的时分替换,然后更新数据库,就可以了,不要太依赖数据库

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进