Mysql 如何选择今天的日期介于开始日期和结束日期之间(包括开始日期和结束日期)的行

Mysql 如何选择今天的日期介于开始日期和结束日期之间(包括开始日期和结束日期)的行,mysql,sql,Mysql,Sql,所以我有两列数据,一列是startdate,一列是enddate。我想选择条目的开始日期和/或结束日期与今天日期一致的行。请参阅下图 你可以在下面试试- select * from tablename where startdate>=date(now()) and endate<=date(now()) 您需要一个WHERE子句,该子句将使用OR条件考虑这两个列,因此如果这两个条件中的任何一个为true,则该条件将进行验证 像这样: SELECT * FROM mytable

所以我有两列数据,一列是startdate,一列是enddate。我想选择条目的开始日期和/或结束日期与今天日期一致的行。请参阅下图

你可以在下面试试-

select * from tablename
where startdate>=date(now()) and endate<=date(now())

您需要一个WHERE子句,该子句将使用OR条件考虑这两个列,因此如果这两个条件中的任何一个为true,则该条件将进行验证

像这样:

SELECT * 
FROM mytable
WHERE startDate = '2019-01-01' OR endDate = '2019-01-01'
现在,如果startDate和endDate只是日期,那就行了。 但是如果startDate和endDate是完整日期加上小时分钟秒的时间戳。。那就不是比赛了

您需要解析日期,如下所示:

WHERE Date_Format(startDate, '%y-%m-%d') = '2019-01-01' 
OR Date_Format(startDate, '%y-%m-%d') = '2019-01-01'
如果要使用当前日期而不是给定日期:

WHERE Date_Format(startDate, '%y-%m-%d') = Date_Format(NOW(), '%y-%m-%d')
OR Date_Format(startDate, '%y-%m-%d') = Date_Format(NOW(), '%y-%m-%d')

您提供的问题答案可能是正确的,但是请您编辑OP的答案,并解释您为什么建议这样做。
SELECT * 
FROM mytable
WHERE startDate = TO_DATE('01/01/2019', 'MM/DD/YYYY') BETWEEN endDate = TO_DATE('01/01/2019', 'MM/DD/YYYY')