【发布时间】:2014-11-26 02:31:00
【问题描述】:
我正在将函数从 SQL Server 2000 迁移到 MySQL。
以下语句在 SQL Server 2000 中执行,输出为 109。
SELECT DATEDIFF(wk,'2012-09-01','2014-10-01') AS NoOfWeekends1
in mysql 的等效查询使用timestampdiff() 而不是datediff,输出为108。
SELECT TIMESTAMPDIFF(WEEK, '2012-09-01', '2014-10-01') AS NoOfWeekends1
我需要在 MySQL 中执行时匹配输出,所以它返回 109。
【问题讨论】:
-
有趣,可能是个bug。
-
谢谢你,你是对的!问题是,现在我无法修改 SQL Server 代码,它已经在应用程序中了。现在的问题是,我需要编写需要给出与 SQL 服务器代码等效的结果的代码。如果我需要使用“DAY”的意思,这两个应用我都得改一下。
-
如果您需要回复用户,只有在您对他们的帖子发表评论或者您在他们的用户名中使用 @ 符号时才会通知他们,例如:@Tanner。因为您评论了您的问题,而不是我的回答,所以我没有收到通知。我只是在我的答案被投票时才回来,所以想检查是否有任何更新。
-
@user2905792 您可以使用
DAYOFWEEK()方法来检测第一天/最后几天,并添加一些逻辑,如果这些天跨越周末而没有完整的一周,则将周计数加1。
标签: mysql sql-server sql-server-2000 datediff