如何使用LIKE运算符搜索一个月中的日期?

kpp

我具有以下数据库结构,我想从特定用户和月份中选择所有内容。但是,它会返回所有月的特定用户数据。
我在此示例中选择的月份是2014-02或2014年2月

date       |user      | some more data |
----------------------------------------
2014-01-20 |user1     | more data      | //will not be skipped
2014-02-01 |user1     | more data      |
2014-02-01 |user2     | more data      | //will be skipped
2014-02-02 |user1     | more data      |
2014-05-02 |user1     | more data      | //will not be skipped

我通过准备好的语句函数调用以下查询。LIKE运算子似乎无法运作。

$query = "SELECT * FROM table1 WHERE user = ? AND date LIKE ?"
$user = "user1";     //These 2 actually come from user input so:
$date = "2014-02%";  //$user = $username; $date = $y."-".$m."%";
//function that runs the prepared statement (simplified)
//this function works for all other queries.
$result = $database->runQuery($query, array($user, $date));
while($row = mysqli_fetch_array($result){
    echo $row['date'];
    echo $row['user'];
    echo $row['some more data'];
    echo "<br>";
}

此打印

2014-01-20 user1 more data //this line should not be printed but it does.
2014-02-01 user1 more data
2014-02-02 user1 more data
2014-05-02 user1 more data //also should not be printed.

所以我的问题是,我对LIKE运算符做错了什么?

我的实际查询。

//The system holds phone call data.
//dcontext is a variable that decides in which column the user is found.
//in case of dcontext = outgoing calls
//clid = username + extensions
//src = users phone number
//dst = to phone number (this can be extension from another user in the system)
//which wont be registered double in this case.

//when dcontext = incomming calls
//clid and src = the caller ID/phone number from the person calling.
//dst  = the users phone number.

//when dcontext = internal call transfer
//clid = username + extension
//src = users phone number
//dst = transfered number

"SELECT * FROM table WHERE 
(dcontext = ? AND (clid = ? OR src = ? OR dst = ? OR dst = ?)) OR 
(dcontext = ? AND dst = ?) OR 
(dcontext = ? AND (clid = ? OR src = ?)) AND 
date LIKE ?" 

date type = DateTime 
巴泰克

我认为您应该CAST将日期string格式化,因此请尝试:

SELECT * FROM table1 WHERE user = ? AND CAST(date as char) LIKE ?

或使用DATE_FORMAT功能

SELECT * FROM table1 WHERE user = ? AND DATE_FORMAT(date, '%Y-%m-%d') LIKE ?

编辑

过滤日期部分的另一种方法是对日期部分进行过滤extract

SELECT * FROM table1 WHERE user = ? AND EXTRACT(year FROM date) = ? AND EXTRACT(month from date) = ?

但是您必须通过yearmonth作为单独的参数

编辑2

我将查询的某些元素放在大括号中,以确保您的AND操作员能够正常工作

尝试使用以下查询:

SELECT * FROM table WHERE 
((dcontext = ? AND (clid = ? OR src = ? OR dst = ? OR dst = ?)) OR 
(dcontext = ? AND dst = ?) OR 
(? AND (clid = ? OR src = ?))) AND (EXTRACT(year FROM date) = ? AND 
(EXTRACT(month FROM date) = ? )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用日历类获取一个月中的所有日期?

来自分类Dev

如何使用日历类获取一个月中的所有日期?

来自分类Dev

润滑获取一个月中某天的日期

来自分类Dev

计算一个月中的日期观测值

来自分类Dev

润滑获取一个月中某天的日期

来自分类Dev

如何仅从一个月中的某一天计算日期?

来自分类Dev

如何从jquery datepicker列出一个月中的所有日期?

来自分类Dev

如何列出一个月中的所有日期以创建日历

来自分类Dev

如何从jquery datepicker列出一个月中的所有日期?

来自分类Dev

如何列出一个月中的所有日期以创建日历

来自分类Dev

如何增加一个月中的天数?

来自分类Dev

如何使用Moment.js获取一个月中的天数列表

来自分类Dev

如何使用jQuery Validate验证一个月中的几天?

来自分类Dev

如何在oracle中查找一个月中所有周的开始日期和结束日期

来自分类Dev

如何使用jQuery从Date.UTC数组中的每个月中减去一个月

来自分类Dev

如何确定给定日期范围内一个月中的天数?

来自分类Dev

Oracle SQL:如何选择一个月中的最后一个可用值?

来自分类Dev

在SQL表的日期字段中将值除以一个月中的天数

来自分类Dev

在日期选择器中仅允许一个月中的某天

来自分类Dev

Flutter-显示从当前日期开始的一个月中的某天

来自分类Dev

解析一个月中有太多天的日期

来自分类Dev

如何使用main方法随机生成一个月中的某一天?有任何想法吗?

来自分类Dev

如何根据同一月的日期查找一个月中特定日期的第五个或结束日期

来自分类常见问题

如何在flutter中使用table_calendar获取一个月中的所有事件?

来自分类Dev

如何使用非递归方法创建一个月中所有天的列表?(提供递归样本)

来自分类Dev

如何使用UI-AngularJS中的UI-Calendar从另一个月中删除几天?

来自分类Dev

查找一个月中的周行数

来自分类Dev

mysql计算一个月中的不同天数

来自分类Dev

SQL:一个月中的总天数

Related 相关文章

  1. 1

    如何使用日历类获取一个月中的所有日期?

  2. 2

    如何使用日历类获取一个月中的所有日期?

  3. 3

    润滑获取一个月中某天的日期

  4. 4

    计算一个月中的日期观测值

  5. 5

    润滑获取一个月中某天的日期

  6. 6

    如何仅从一个月中的某一天计算日期?

  7. 7

    如何从jquery datepicker列出一个月中的所有日期?

  8. 8

    如何列出一个月中的所有日期以创建日历

  9. 9

    如何从jquery datepicker列出一个月中的所有日期?

  10. 10

    如何列出一个月中的所有日期以创建日历

  11. 11

    如何增加一个月中的天数?

  12. 12

    如何使用Moment.js获取一个月中的天数列表

  13. 13

    如何使用jQuery Validate验证一个月中的几天?

  14. 14

    如何在oracle中查找一个月中所有周的开始日期和结束日期

  15. 15

    如何使用jQuery从Date.UTC数组中的每个月中减去一个月

  16. 16

    如何确定给定日期范围内一个月中的天数?

  17. 17

    Oracle SQL:如何选择一个月中的最后一个可用值?

  18. 18

    在SQL表的日期字段中将值除以一个月中的天数

  19. 19

    在日期选择器中仅允许一个月中的某天

  20. 20

    Flutter-显示从当前日期开始的一个月中的某天

  21. 21

    解析一个月中有太多天的日期

  22. 22

    如何使用main方法随机生成一个月中的某一天?有任何想法吗?

  23. 23

    如何根据同一月的日期查找一个月中特定日期的第五个或结束日期

  24. 24

    如何在flutter中使用table_calendar获取一个月中的所有事件?

  25. 25

    如何使用非递归方法创建一个月中所有天的列表?(提供递归样本)

  26. 26

    如何使用UI-AngularJS中的UI-Calendar从另一个月中删除几天?

  27. 27

    查找一个月中的周行数

  28. 28

    mysql计算一个月中的不同天数

  29. 29

    SQL:一个月中的总天数

热门标签

归档