首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按周表示的日期格式

按周表示的日期格式
EN

Stack Overflow用户
提问于 2010-09-01 01:26:19
回答 2查看 1.6K关注 0票数 6

根据文档,我很难弄清楚如何将周数等同于Perl和MySQL。

如何根据同一时区中的MySQL时间戳在Perl和unix中计算完全相同的周数?

代码语言:javascript
复制
SELECT DATE_FORMAT(from_unixtime(datefield), '%Y%U') FROM table;

代码语言:javascript
复制
print strftime('%Y%U', localtime($datevar));

对于任何给定的时间戳,都应该生成相同的周数字。理想情况下,我希望周数字是可移植的,比如ISO 8601。虽然我的测试中的周数字有时似乎是匹配的,但我在Perl和MySQL的文档中找不到任何东西来确认日期格式明显符合相同的定义。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-01 03:35:19

对于Perl,请查看DateTime模块。它提供了一个week()方法,该方法可以返回给定DateTime对象的一年中的星期数:

代码语言:javascript
复制
($week_year, $week_number) = $dt->week;

请注意,年份很重要,因为前一年或下一年的日期可以在一周内。这是因为ISO标准中的“星期”,其中一年的第一周是包含一月的第四天。因此,像1月1日这样的日期可能是前一年的最后一周。

对于未受过训练的人来说,MySQL的YEARWEEK()函数可以做同样的事情,或者像Mikey1980 suggests一样,尝试WEEKOFYEAR()函数。正如its documentation所说,看起来YEARWEEK()做了同样的事情:

结果中的年份可能与一年中第一周和最后一周的date参数中的年份不同。

...but我不能保证他们会做同样的事情。:-)

票数 4
EN

Stack Overflow用户

发布于 2010-09-01 01:47:25

对于MySQL,请尝试执行以下查询:

代码语言:javascript
复制
SELECT WEEKOFYEAR(from_unixtime(datefield)) FROM table;

很抱歉,这只是你想要的答案的一半,但我希望它能有所帮助!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3611563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档