- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 MySQL 中的 BETWEEN 函数来搜索任何 年但在特定日期/月份到特定日期/月份之间的日期?或者,如果无法使用 BETWEEN,我还能如何完成它?
为了更具描述性,我正在尝试向我的照片存档网站添加季节性搜索。因此,如果用户选择搜索“夏季”照片,它会搜索在 6 月 21 日至 9 月 21 日之间拍摄的照片,但可以是任何年份的照片。
如果 Carlsberg 做了 SQL,我想会是 :)
WHERE date BETWEEN 'xxxx-06-21' AND 'xxxx-09-21'
非常感谢
最佳答案
别处给出的解决方案,WHERE date.MONTH() || date.DAY() BETWEEN '0621' AND '0921'
,是一个很好的(它非常值得投票,因为它适用于大多数 MySQL 数据库)但我想指出它(以及大多数查询涉及每行函数的)不会很好地扩展到大表。
当然,根据我的经验,MySQL 并不经常用于会产生巨大差异的大小,但如果是,您还应该考虑以下因素。
我们过去使用的一个技巧是将额外的列与插入/更新触发器相结合,以便计算成本仅在必要时(数据更改时)发生,而不是在每一次选择。
由于绝大多数数据库的读取频率远高于写入频率,因此这会摊销所有选择的成本。
例如,添加一个名为 MMDD
的新列 CHAR(4)
并在其上创建索引。然后在表上设置插入/更新触发器,以便使用 date
列来设置这个新触发器,基于已经提供的公式,date.MONTH() ||日期.DAY()
.
然后,在进行查询时,跳过每行函数,而是使用:
WHERE MMDD BETWEEN '0621' AND '0921'
它的索引将使速度保持快得令人眼花缭乱,插入/更新和额外列期间的触发器成本很小。
触发器的成本是无关紧要的,因为它比为每个选择操作执行它的成本要低。列所需的额外存储是一个缺点,但是,如果您检查人们询问的有关数据库的所有问题,速度问题与存储问题的比率相当高:-)
而且,虽然这在技术上“破坏”了 3NF,因为您复制了数据,但出于性能原因这样做是一个历史悠久的传统,如果您知道自己在做什么(即触发器减轻“损害”)。
关于mysql - SQL - 日期介于(xxxx-06-21 和 xxxx-09-21)之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7591722/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我想格式化 UITextField用于输入信用卡号,使其只允许输入数字并自动插入空格,以便数字格式如下: XXXX XXXX XXXX XXXX 我该怎么做? 最佳答案 如果您使用 Swift,请阅读
我正在尝试使用以下代码创建信用卡类型文本,但无法做到这一点,有什么办法吗? func textField(textField: UITextField, shouldChangeCharactersI
我有一个 16 个字符的字符串,它是这样的: 1234567891234567 我需要能够格式化字符串,因为它会出现在系统中,即 XXXX-XXXX-XXXX-4567 注意上面显示的 4567 位数
List list = fromStudentTable(); Map map = new HashMap(); for (Student i : list) { map.put(i.getD
我需要将这六个字段保存在同一列中,但不在同一行和同一单元格中。每个字段都有默认的 GUID。所以我决定将默认的 GUID 放在一个列表中,将字段放在一个列表中,并在我们想要的地方调用该特定列表的对象。
我刚刚开始使用 stackify 的 Retrace 来监控我的应用程序,并且看到了数千个错误,这些错误是: System.FormatException: Guid should contain 3
我使用的是演练:第 1 部分 - 创建基本项目系统,完全按照网站 http://msdn.microsoft.com/en-us/library/cc512961.aspx 上的说明使用以及与从 ht
我正在使用 antd 表单项,我尝试了以下模式,但它不起作用。 rules: [{ pattern: new RegExp("^d{4}-d{2}-d{4}$"), messag
当我的数据库离线时,我没有遇到这个错误。我刚刚使用 db4free.net 使我的数据库联机。 每次登录都会出现此错误。有人能指出哪里出了问题吗? private void btnLogIn_Clic
当我的数据库离线时,我没有遇到这个错误。我刚刚使用 db4free.net 使我的数据库联机。 每次登录都会出现此错误。有人能指出哪里出了问题吗? private void btnLogIn_Clic
我有以下代码(如果我保留警告,它可以编译并正常工作,我还没有使用 global::hack 对其进行测试): namespace NotifierService.Models {} namespace
我迷路了:我正在尝试让 MySQL 在我的一个小型控制台程序中工作;我有一个在本地主机上运行的 MySQL 服务器,我可以通过 MySQL Workbench 8.0 CE 访问它。那里没问题。我的程
当我尝试构建我的应用程序时,链接器给出大量错误,如下所示: modlauch.obj : error LNK2005: "public: virtual __thiscall lolbutton::~
我对 Excel VBA 还很陌生。到目前为止,我已经在这个网站上阅读并学到了很多东西,但还没有找到解决我的问题的方法。 作为宏的一部分,我有以下代码: With Worksheets("Oracle
如上所述。我举一个例子,假设所有的测试值都小于1但大于0。 0.12(精度:3,小数位数:2) 0.345(精度:4,小数位数:3) 0.6789(精度:5,小数位数:4) 如何在不对比例和精度值进行
我收到四个“在 com.rusapp.batch.trans.OLFMWriter 类中找不到属性“xxxx”的 setter ”。该类中的第五个 bean,inputQueue,没有错误。其余的在下
我在 javascript 中有 2 个字符串,其中包含代表文件版本的数字。 即 var str1 = "11.11.1111.1111" var str2 = "11.22.3333.5555" 如
package com.test.nativeapp; import android.support.v7.app.ActionBarActivity; import android.os.Bundl
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: A comprehensive regex for phone number validation 什么是正
我是一名优秀的程序员,十分优秀!