有没有办法用月份数字而不是月份名称来搜索 SQL 查询?

Posted

技术标签:

【中文标题】有没有办法用月份数字而不是月份名称来搜索 SQL 查询?【英文标题】:Is there a way to search a SQL Query with Month Numbers, and not Month Name? 【发布时间】:2008-12-17 16:13:39 【问题描述】:

我正在尝试在 sql 查询中使用月份的实际数值来提取结果。有没有办法做到这一点,而无需将数字更改为实际月份名称,然后返回月份数字?以下代码适用于名称,什么适用于数字?

日期名称(月份,(转换(日期时间,DTSTAMP)))= '十月'

【问题讨论】:

【参考方案1】:

month,(convert(datetime,DTSTAMP)) 应该这样做,但是为什么你没有正确地将数据存储为日期时间呢?使用日期的所有额外转换都会给您的服务器增加不必要的负载并减慢您的应用程序的速度。

【讨论】:

【参考方案2】:

Datepart 是月份命令的替代品,它更灵活,因为您可以提取日期的其他部分。

DATEPART(mm, convert(datetime,DTSTAMP))

【讨论】:

【参考方案3】:

获取日期的月份数

CONVERT(VARCHAR(2) ,DTSTAMP ,110)

【讨论】:

【参考方案4】:

在这里,您可以使用 diff 选项进行搜索,例如:

DATE_SUB(CURDATE(), INTERVAL 0 DAY)

DATE_SUB(CURDATE(),间隔 1 个月)

DATE_SUB(CURDATE(),间隔 1 年)

根据您的要求。

【讨论】:

以上是关于有没有办法用月份数字而不是月份名称来搜索 SQL 查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]

NSDateFormatter 没有显示完整的月份名称,只有一位数字

在 PHP 中将数字转换为月份名称

如何从 SQL Server 中的日期获取月份编号(不是月份名称)?

Android DatePicker显示月份名称

如何在包含单词、三个字母月份和两位数字年份的字符串中搜索月份和年份并将它们转换为 SQL 中的日期?