mysql - 如何将当前时间与 MySQL 中的时间变量进行比较

标签 mysql datetime casting

我需要编写一个查询,我应该将当前时间与包含一些时间的变量进行比较。

SQL 查询:

select time >= curtime() from appointment;

这里的time是有时间的变量。

这是我遇到的错误:

Illegal mix of collations (utf8_general_ci,IMPLICIT) and (latin1_swedish_ci,NUMERIC) for operation '>='; nested exception is java.sql.SQLException: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (latin1_swedish_ci,NUMERIC) for operation '>='

我已经尝试过使用 time(now()) 但它不起作用。

最佳答案

appointment.timeDATETIME 或类似的数据类型,还是字符串?

如果它是 DATETIMETIMESTAMP 而不是字符串,这可能最有利于您的系统完整性。

无论如何试试这个

select CAST(time AS DATETIME) >= CURTIME()

您编写表达式的方式可能依赖于某种自动类型强制转换,最好将其显式化。

关于mysql - 如何将当前时间与 MySQL 中的时间变量进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45032130/

相关文章:

php - 如何缓存 PHP 生成的动态页面并包含开放图形元信息

java - 如何在java中的sqlite db中获取并自动输入当前日期?

C++ 定义类型转换

php - 使用 jQuery AJAX 在完整日历中显示事件

mysql - 在 mySQL 中选择不匹配的字段

php - 插入 0000-00-00 00 :00:00 to DateTime in Mysql Database

c# - 检查某个时间是否属于给定时间段的算法

C++ - 动态绑定(bind)和对象实例不访问派生方法

c# - 与 COM 中的 QueryInterface 或 C++ 中的 dynamic_cast 相比, "as"的成本是多少?

php - mysql查询将多个值合并为一个