比较sql server中的datetime

时间:2013-09-23 17:04:50

标签: mysql datetime

我坐着有点问题..

在我的数据库中,我有一个包含2个dateTimes的表..

TABLE1的 turn_time 为dateTime,值为 0000-00-00 23:59:59

TABLE2的 last_move 为DateTime,值为 2013-09-23 14:20:19

我想在SQL中计算turn_time + last_move< NOW()。

但是我回来的结果看起来像这样: 的 40261846333938.000000

如果turn_time + last_move<

如何获得当前行的简单选择?现在()?

我的SQL:

SELECT * FROM active_games 
        INNER JOIN games 
        ON active_games.fk_games_id = games.games_id 
        INNER JOIN product
        ON active_games.fk_product = product.product_id
        INNER JOIN users
        ON active_games.fk_user_id_turn = users.user_id
        INNER JOIN user_profile 
        ON users.user_id = user_profile.fk_user_id
        WHERE turn_time + last_move < NOW()
谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用此WHERE子句:

WHERE UNIX_TIMESTAMP(turn_time) + UNIX_TIMESTAMP(last_move) < UNIX_TIMESTAMP(NOW())

NOW()的文档说明如下:

  

以&#39; YYYY-MM-DD HH:MM:SS&#39;中的值返回当前日期和时间。或YYYYMMDDHHMMSS.uuuuuu格式,具体取决于函数是在字符串还是数字上下文中使用。

由于在NOW()子句中的数字上下文中使用了WHERE,因此它会返回数值(采用YYYYMMDDHHMMSS.uuuuuu格式),并尝试比较它们到DateTime turn_time + last_move。将所有内容转换为Unix时间戳应该允许比较正常工作。

希望这有帮助!