【发布时间】:2022-01-09 23:20:22
【问题描述】:
我正在查询一个具有如下日期列的表:
date
2021-03-08 05:05:31+00
2021-03-08 05:10:31+00
如何在 SQL 中选择所有包含 05:05 作为小时和分钟的行?即小时 = 05 和分钟 = 05 的行。在这种情况下,它将是第一行。
【问题讨论】:
-
你的 dbms 是什么? MySQL postgresql
我正在查询一个具有如下日期列的表:
date
2021-03-08 05:05:31+00
2021-03-08 05:10:31+00
如何在 SQL 中选择所有包含 05:05 作为小时和分钟的行?即小时 = 05 和分钟 = 05 的行。在这种情况下,它将是第一行。
【问题讨论】:
问:如何在 SQL 中选择所有包含 05:05 作为小时和分钟的行?
答:对于 MySQL,请查看 MySql Date and Time functions。在那里,你会找到Extract()。
您可以按如下方式使用它:
https://www.w3schools.com/sql/func_mysql_extract.asp
从日期时间中提取分钟:
SELECT EXTRACT(MINUTE FROM "2017-06-15 09:34:21");
这假设您将列存储为“日期”类型。
不同的 RDBMS 供应商具有不同的日期/时间功能。您必须阅读文档并进行实验,以确定要为您的特定数据库供应商和特定表架构使用哪种语法。
【讨论】:
您可以根据您的问题使用以下查询获取结果。
SQL 中有 DateName 函数,您可以将其放入查询中,如下所示。
CreatedDate 是列名.. 示例:
Select * from #tmp1 where datename(hour,createdDate)=07 And datename(minute,CreatedDate)=07
【讨论】: