ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

PostgreSQL 按星期名称获取日期:to_char 模板模式实战

PostgreSQL 按星期名称获取日期:to_char 模板模式实战 文档教程知识库【免费下载链接】til:memo: Today I Learned项目地址https://gitcode.com/gh_mirrors/ti/til点击查看免费下载在 PostgreSQL 中获取某个日期对应的星期几除了用date_part()得到0~6的整数外更直观的方式是用to_char()函数把它格式化成Monday、Sunday这样的星期名称。本文以 postgres/day-of-week-by-name-for-a-date.md 为核心结合同仓库的配套笔记与相关格式化场景讲清星期名称输出、模板模式选择以及在查询中的实战用法。一、为什么需要按名称获取星期几在本仓库的配套笔记 Day Of Week For A Date 中展示了用date_part()函数以整数形式判断星期几的做法 select date_part(dow, 2050-1-1::date); date_part ----------- 6其结果是0到6之间的整数0表示星期日、6表示星期六。这种数字表示适合程序内比较或运算但在直接阅读结果、输出报表或做展示时6远不如Saturday一目了然。此时就需要to_char()函数——它可以把date或timestamp值按照指定的**模板模式template pattern**转换为格式化字符串其中就包含输出星期名称的模式。二、核心示例用to_char(now(), Day)得到星期名称to_char()接收两个参数第一个是待格式化的日期或时间戳第二个是描述输出格式的模板字符串。要得到今天的星期名称可以执行 select to_char(now(), Day); to_char ----------- Sunday其中now()返回当前事务开始时刻的timestamptz值它是transaction_timestamp()的别名详见仓库笔记 Timestamp FunctionsDay是模板模式表示输出完整的大写星期名称结果是Sunday、Monday这样的可读文本方便直接展示。三、星期相关的模板模式全集Day只是众多日期时间模板模式中的一种。围绕星期几PostgreSQL 还提供了大写、小写、缩写、数字以及 ISO 标准等多种模式实际使用时可以按需选取模式含义示例输出Day完整星期名称首字母大写Mondayday完整星期名称全小写mondayDY缩写星期名称大写MONdy缩写星期名称小写monD星期几的数字周日为 1周六为 71IDISO 8601 星期几的数字周一为 1周日为 71注意D与date_part(dow, ...)的编号起点不同date_part(dow, ...)0周日到6周六to_char(..., D)1周日到7周六to_char(..., ID)1周一到7周日遵循 ISO 8601 标准。跨库迁移或对接国际业务时ID模式能避免“一周从哪天开始”的歧义。四、去掉填充空格FM修饰符完整名称模式Day、day在输出时默认会用空格填充到固定宽度9 个字符以保证各列对齐。例如Monday实际输出可能带有尾部空格。如果只想得到干净的Monday可以在模式前加FMfill mode修饰符 select to_char(now(), FMDay); to_char ----------- MondayFM是模板模式中通用的一项修饰符它会移除前缀填充的空格以及针对数值模式尾部零在拼接展示字符串时非常实用。五、组合使用格式化完整日期to_char()的模板可以自由组合多个模式用来输出完整的日期描述。例如同时得到星期名称、月份和年份 select to_char(now(), FMDay, Month DD, YYYY); to_char ----------------------- Monday, October 07, 2026这类组合输出非常适合直接用于报表表头、邮件正文或界面标题无需在应用层再做二次格式化。六、实战场景按星期名称聚合统计把to_char()放进GROUP BY可以按星期名称做聚合分析比如统计每天新增的记录数select to_char(created_at, FMDay) as weekday, count(*) from orders group by to_char(created_at, FMDay);若希望结果按周一到周日排序可在GROUP BY中同时带上date_part(isodow, created_at)ISO 规则下周一为 1再用ORDER BY控制展示顺序。这与仓库笔记 Group By The Result Of A Function Call 的思路一致——GROUP BY完全支持函数调用表达式。七、在仓库中继续深入to_char()的第二个参数属于 PostgreSQL 的数据格式化模板体系除星期模式外还有YYYY、MM、HH24:MI:SS等大量日期时间模式以及配套的to_timestamp()、to_date()等反向转换函数。本仓库的以下笔记可以帮你把这一体系串起来Day Of Week For A Date用date_part()/整数形式获取星期几的姊妹篇与本文形成对比Convert A String To A Timestamp用to_timestamp()按模板模式把字符串解析为timestamptz是to_char()的反向操作Timestamp Functionsnow()、statement_timestamp()、clock_timestamp()的区别理解格式化对象本身的行为。小结判断日期是星期几date_part(dow, ...)给出整数to_char(date_or_timestamp, Day)给出名称。配合day、DY、dy、D、ID等模式与FM修饰符可以灵活产出大写、小写、缩写、ISO 数字等不同形态的星期信息并与其他日期时间模板组合直接服务于查询展示与聚合分析。赞分享文档教程知识库【免费下载链接】til:memo: Today I Learned项目地址https://gitcode.com/gh_mirrors/ti/til点击查看免费下载相关推荐使用 toLocaleDateString 获取 JavaScript Date 对象星期名称的完整指南使用 toLocaleDateString 获取 JavaScript Date 对象星期名称的完整指南 导读 Date 对象在 JavaScript 中拥有大教程文档[会议名称] - [日期]会议名称 日期 核心议题 演讲者 关键观点 附时间戳 疑问记录 Q1 问题内容 → 待会后邮件咨询 资源链接 幻灯片 会议提供的下载链接 相关代码库文档教程教育Hugo 模板方法 Weekdaytime.Time 星期值获取、字符串与整数转换实战指南Hugo 模板方法 Weekday time.Time 星期值获取、字符串与整数转换实战指南 本篇技术指南聚焦 Hugo 模板中作用于 time.Time 值开发工具前端CLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表