SQL按月和年选择日期范围

时间:2018-07-17 09:22:45

标签: mysql sql

如何从此查询中选择日期范围?

例如:从月份('2017-05-22')和年份(date1)=年('2017-05-22') 到月('2018-05-22')和年(date1)=年('2018-05-22')

我当前的查询:

SELECT 
  date1
FROM 
  data
WHERE 
  Month(date1) = Month('2018-05-22') And Year(date1) = Year('2018-05-22')

4 个答案:

答案 0 :(得分:0)

我将使用str_to_date将这些文字转换为日期:

SELECT MONTH(date1)
FROM   data
WHERE  date1 BETWEEN STR_TO_DATE('2017-05-22', '%Y-%m-%d') AND STR_TO_DATE('2018-05-23', '%Y-%m-%d')

请注意,between在第一个参数上是包含,在第二个参数上是专有,因此我将这一天推到了23日。

答案 1 :(得分:0)

BETWEEN条件可检索日期范围内的值。

例如:

SELECT *
FROM order_details
WHERE order_date BETWEEN CAST('2014-02-01' AS DATE) AND CAST('2014-02-28' AS DATE);

此MySQL BETWEEN条件示例将返回order_details表中的所有记录,其中order_date在2014年2月1日至2014年2月28日之间(包括2014年2月28日)。这将等效于以下SELECT语句:

SELECT *
FROM order_details
WHERE order_date >= CAST('2014-02-01' AS DATE)
AND order_date <= CAST('2014-02-28' AS DATE);

答案 2 :(得分:0)

SELECT TO_CHAR(systemts, 'yyyy-mm') as yyyymm,
       max(notenum) - min(notenum) + 1 as notenum_range
FROM your_table_name
WHERE systemts >= to_date('2018-01-01', 'yyyy-mm-dd') AND
      systemts < to_date('2018-07-17', 'yyyy-mm-dd')
GROUP BY TO_CHAR(systemts, 'yyyy-mm');

答案 3 :(得分:0)

awk -i inplace 'BEGIN {val=ARGV[2]; --ARGC} /\$cfg\[.blowfish_secret.\][[:blank:]]*=/ {$0=val} 1' /var/www/html/phpMyAdmin/config.inc.php "$replace_pma_blowfish"