php - 类型为 VARCHAR 时的日期 SQL 查询

标签 php mysql sql codeigniter

我正在尝试查询两个日期之间的数据库...问题是我正在查询的列包含当前格式为“01/01/2014”(dd/mm/yyyy)的日期列类型为 VARCHAR。

目前,我无法将列转换为日期类型。

基本上,当我查询表时,因为它没有设置为日期类型,所以 between 查询不会返回正确的行...

有没有其他人遇到过这个问题,我可以在查询中更改什么吗?

$this->db->where('IssueDate >=', '02/12/2013');
$this->db->where('IssueDate <=', '22/01/2014');
$query = $this->db->get('MYTABLE');

谢谢你们。

最佳答案

解决方案是使用str_to_date():

$this->db->where("str_to_date(IssueDate, '%d/%m/%Y') >=", "'2013-12-92'");
$this->db->where("str_to_date(IssueDate, '%d/%m/%Y') <=", "'2014-01-22'");
$

您可能无法控制数据库。但是您确实可以控制自己的常量。您应该习惯此类常量的 ISO 标准 YYYY-MM-DD —— 明确且被大多数数据库正确接受。

关于php - 类型为 VARCHAR 时的日期 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21295533/

相关文章:

php - 如何检查group_concat字段中的id?

PHP "Uninclude"或从内存中删除?

php - 使用 call_user_func 传递参数?

mysql - MAX 函数返回一行

mysql - 在 TEXT 数据类型 mysql 中连接一个字符串

OSX 上的 Python3 到 MySQL 连接 ...ImportError : Reason: Image not found

c# - SqlDataReader 和网络延迟

php - 如何用连字符替换点、空格和逗号并避免使用 php 出现双连字符?

mysql - SQL 约束 : Unique value in a non-unique column

sql - Qorus 嵌套选择哈希