0

嗨,我必须从我的表中检索与给定 MM-YYYY 匹配的最新记录,但表中的日期字段是 DD-MM-YYYY,我该如何完成?

非常感谢你

最好的问候伊格纳西奥。

4

5 回答 5

2

您需要多少最近的记录?

你能不能查询相关月份的所有日期,按日期排序,然后只从列表顶部选择你需要的结果。

例如:

SELECT TOP(1) * 
FROM your_table 
WHERE date_time_field >= '20120101' 
  AND date_time_field < '20120201' 
ORDER BY date_time_field DESC

这将选择今年 1 月以来的最新记录。更改TOP()语句中的数字以更改返回的结果数,或者完全不使用它,并放心您的结果是有序的。

于 2012-05-08T19:21:40.343 回答
0

以下作品:

right(select convert(varchar, <date field>, 110), 7)

完整的查询看起来像这样:

select *
from table
where right(select convert(varchar, <date field>, 110), 7) = 'MM-YYYY'
于 2012-05-08T19:10:36.540 回答
0
SELECT * FROM `your`.`schemaTableNames` WHERE your_coulumn_name LIKE "%-MM-YYYY";

应该给你匹配的记录,就像你写的那样,你想检索。

于 2012-05-08T19:13:28.617 回答
0

您是否尝试过DateDiff(month, date1, date2) == 0在 where 子句中使用?

这假定您可以将这两个值都转换为 DATETIME。如果您只有年和月,则每个月都有第 01 天。

于 2012-05-08T19:26:45.430 回答
0

要将日期转换为所需格式,您可以使用样式来检索记录日期格式

于 2012-05-08T19:30:15.003 回答