让决策更智能
新一代智能数据分析平台

sql日期里大写Y和小写y的区别

观小数发表于:2020年12月28日 15:54:54更新于:2021年01月07日 18:56:58

问题描述:

今天是2020年12月28日,我用时间宏取年月:{{{yesterday %YMMdd}}},返回的是20211228:

0015fe98df693efbfc6abf2b1ddda95

0015fe98e163839abf942d3d5be5732

产生原因:

在sql里,y 是Year(自然年), Y 表示的是Week year(年周年);

Week year 意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。

比如刚好是2020-12-28 本周刚好跨年,且Week year是从上周日开始算的,那么昨天(2020年12月27日,周日)就刚好是跨年周的第一天,是属于2021年的第一周的,所以就出现了上面的情况。


解决方法:

年份要用小写的y来写:

0015fe98e64708750864ea9e4a01e6b

0015fe98e8dde5a1c0a2396011d53ec


小结:我们在遇到时间格式化的最好就用小写的y,

比如date_format(yyyy-MM-dd)、to_date(yyyy-MM-dd)、{{{yesterday %y}}}等,

虽然一年遇到一次,但还是规范下使用会比较好,时间宏的相关使用案例可参考:时间宏的使用案例



    您需要登录后才可以回复