如何将日期截断到星期初(星期日)?

时间:2019-06-21 11:13:59

标签: postgresql date truncate dayofweek weekday

我需要将日期截断为一周的开始,在我的情况下为星期日。如何在PostgreSQL中做到这一点?截断到星期一:

@For /F "Delims=" %%A In ('
 Dir /B/S/AD-L-S 2^>NUL^|^
 FindStr /I "\\Debug$ \\\.vs$"^|^
 FindStr /IV "\\Debug\\ \\\.vs\\"
')Do @RD /S/Q "%%A" 2>NUL

2 个答案:

答案 0 :(得分:2)

如果您从当前日期减去dow值(星期日为0,星期六为6),则您得到的前一个星期日是基于星期日的一周的开始

demo:db<>fiddle

SELECT 
    my_date - date_part('dow', my_date)::int
FROM
    my_table

Further reading, documentation

答案 1 :(得分:1)

您可以将日期截断为一周的星期一,然后减去1天,例如:

with open(json_file, 'w') as out_j:
    for k, v in your_dict.items():
        out_j.write('"{}": "{}"\n'.format(k, v))

根据documentationSELECT (date_trunc('week', now() + interval '1 day') - interval '1 day')::DATE; date ------------ 2019-06-16 接受类型为date_trunc()date的值,并返回timestamp(因此在结尾处强制转换)。