gpt4 book ai didi

postgresql - 检查数据库中的 "now()"和时间戳是否与 3 天不同

转载 作者:行者123 更新时间:2023-11-29 13:46:08 25 4
gpt4 key购买 nike

我正在使用 Phoenix 和 Ecto。我需要检查“now()”和某个日期之间的差异是否小于 3 天。正是我正在尝试这个:

    {diff_days, {_, _, _}} = Ecto.DateTime.to_erl(my_user.signed_up_at) |> :calendar.time_difference(:calendar.universal_time)
if diff_days <= 3 do
# good to go
# ....
end

但是,这不适用于 3 天零 1 分钟之前的日期,对吗?

检查是否超过 3 天或 72 小时的通用方法是什么?

在我的数据库中 signed_up_at 是类型 timestamp without timezone

最佳答案

使用DateTime.diff/3 :

three_days_in_seconds = 3 * 24 * 60 * 60
case DateTime.diff(DateTime.utc_now, my_user.signed_up_at, :second) do
good when good < three_days_in_seconds ->
# good to go
_ ->
# skip
end

请注意,:second 是调用 DateTime.diff/3 时第三个参数的默认值,可能会被省略。

关于postgresql - 检查数据库中的 "now()"和时间戳是否与 3 天不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48218880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com