【发布时间】:2008-12-17 16:13:39
【问题描述】:
我正在尝试在 sql 查询中使用月份的实际数值来提取结果。有没有办法做到这一点,而无需将数字更改为实际月份名称,然后返回月份数字?以下代码适用于名称,什么适用于数字?
日期名称(月份,(转换(日期时间,DTSTAMP)))= '十月'
【问题讨论】:
标签: sql mysql sql-server
我正在尝试在 sql 查询中使用月份的实际数值来提取结果。有没有办法做到这一点,而无需将数字更改为实际月份名称,然后返回月份数字?以下代码适用于名称,什么适用于数字?
日期名称(月份,(转换(日期时间,DTSTAMP)))= '十月'
【问题讨论】:
标签: sql mysql sql-server
month,(convert(datetime,DTSTAMP)) 应该这样做,但是为什么你没有正确地将数据存储为日期时间呢?使用日期的所有额外转换都会给您的服务器增加不必要的负载并减慢您的应用程序的速度。
【讨论】:
Datepart 是月份命令的替代品,它更灵活,因为您可以提取日期的其他部分。
DATEPART(mm, convert(datetime,DTSTAMP))
【讨论】:
获取日期的月份数
CONVERT(VARCHAR(2) ,DTSTAMP ,110)
【讨论】:
在这里,您可以使用 diff 选项进行搜索,例如:
DATE_SUB(CURDATE(), INTERVAL 0 DAY)
DATE_SUB(CURDATE(),间隔 1 个月)
DATE_SUB(CURDATE(),间隔 1 年)
根据您的要求。
【讨论】: