mysql - SQL 获取晚于指定日期的日期
问题描述
我正在研究一个以人类可读格式存储日期列的数据库。这似乎使得计算给定日期晚于的行变得很棘手。
格式存储为2018 年 11 月 20 日
我正在尝试返回 collection_date 晚于2018 年 11 月 5 日的所有行
我尝试了以下引发错误的查询。
SELECT *
FROM `orders`
WHERE collection_date >= CONVERT(datetime, '20181105')
这会引发以下错误消息:
这是我的数据库信息:
更新 1:我正在尝试以下查询。到目前为止,以前的查询都没有工作,都产生了 0 行:
SELECT *
FROM `orders`
WHERE STR_TO_DATE('collection_date', '%d %M, %Y') >= 2018-11-05
这也行不通
解决方案
在 MySQL 中,你想要STR_TO_DATE()
:
SELECT o.*
FROM `orders` o
WHERE collection_date >= Str_To_Date(datetime, '%e %M, %Y');
CONVERT()
使用此语法的是 SQL Server 函数。
推荐阅读
- sql-server - SQL Server Service Broker - 处理特定架构中的存储过程
- c# - 如何在 wpf prism 中使用不同的 ViewModel 重用相同的视图?
- node.js - Mongoose 一次插入多个相关记录
- c# - Web API 方法永远不会被路由到
- r - 使用 grepl 没有达到我想要的结果
- timezone - 如何解析时区信息格式的扩展版本?
- html - jscolor 在引导模式中不起作用
- api - 查询 Jenkins 的最后几个构建
- database - 分布式存储系统中的结构化非结构化和半结构化数据是什么
- android - 待定意图打开错误的活动