繁体   English   中英

如何从格式化的列日期中获取特定的日期月份或年份

[英]how to get specific day month or year from a column date formated

我有名为PODate的列,其日期已格式化。

  1. “2018年9月15日”
  2. “2018年9月16日”
  3. “2018年9月17日”
  4. “2018年10月19日”
  5. “二〇一八年十月二十○日”

我想从格式化的列日期中得到一个特殊的日期或月份甚至年份。 但是我不知道该查询使用什么功能。

我想查询一个从选定月份获得的查询。 或根据选择的日期从一周开始。

仅当我选择第9个月时,输出才会像,然后它将返回仅第9个月的日期。

  1. “2018年9月15日”
  2. “2018年9月16日”
  3. “2018年9月17日”

谢谢

你可以试试看

SELECT * FROM yourtable
WHERE CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, date))) = '2018-09-15'

请查看此讨论

您可以在MySQL中使用正则表达式 请参阅此处的文档。

SELECT * FROM MyTable WHERE date REGEXP '^.{5}09.*'

这将返回表中第六和第七个字符分别为'09'的所有条目,即,对于您的情况,它将返回表中日期为9月的所有条目。

将其分解, ^表示我们要开始查看字符串的开头。 . 代表任意字符, {5}表示在此之前发生的任何事情都需要重复五次,即.{5}代表五个任意字符。 .*代表要跟随的任意数量的任意字符( 可能为零 )。

可以为其他情况设计类似的表达式。

您可以使用Extract功能。

定义:

EXTRACT()函数从给定日期提取零件

范例:

Month

SELECT EXTRACT(MONTH FROM "2018-09-15");

Week

SELECT EXTRACT(WEEK FROM "2018-09-16");

它可以提取:

  1. 分钟
  2. 小时
  3. 25美分硬币
  4. SECOND_MICROSECOND
  5. MINUTE_MICROSECOND
  6. MINUTE_SECOND
  7. HOUR_MICROSECOND
  8. HOUR_SECOND
  9. HOUR_MINUTE
  10. DAY_MICROSECOND
  11. DAY_SECOND
  12. DAY_MINUTE
  13. DAY_HOUR
  14. YEAR_MONTH

您可以在此处阅读有关文档的更多信息Extract()函数

编辑

您可以使用此Extract Functionwhere为你的情况的条件:

范例:

select
    your_date
from
    your_table
where
    extract(MONTH FROM your_date) = '9'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM