根据datetime列SQL获取最新记录

时间:2015-02-17 16:20:10

标签: c# sql-server datetime

我正在尝试选择最近的记录。现在它将返回所有记录。从那以后,因为我没有使用过滤器来获得最新的,我不确定如何做到这一点。这是我的代码:

select 
    c.my_Name, a.my_Num, d.myBrand, a.order_bill, a.myDate 
from
    [table1] a
left join 
    [table2] b on a.[myCode] = b.[myCode]
left join 
    [table3] c on c.myTag = b.myTag
left join 
    [table4] d on a.[myHash] = d.[myHash] 
where  
    c.[myName] = 'test name'   

我想从表格中获取最新记录,我猜最有效的方法是获取最新的a.myDate

2 个答案:

答案 0 :(得分:3)

我写了

SELECT TOP 1 
c.my_Name, a.my_Num, d.myBrand, a.order_bill, CONVERT(char(10), a.myDate,126) 
FROM [table1] a
LEFT JOIN [table2] b on a.[myCode] = b.[myCode]
LEFT JOIN [table3] c on c.myTag=b.myTag
LEFT JOIN [table4] d on a.[myHash] = d.[myHash] 
WHERE  c.[myName] = 'test name'  
ORDER BY a.myDate DESC

答案 1 :(得分:1)

这样的事可能会有所帮助

select c.my_Name, a.my_Num, d.myBrand, a.order_bill, MAX(a.myDate) 
from [table1] a
left join [table2]  b on a.[myCode] = b.[myCode]
left join [table3] c on c.myTag=b.myTag
left join [table4] d on a.[myHash] = d.[myHash] 
where  c.[myName] = 'test name'
group by c.my_Name, a.my_Num, d.myBrand, a.order_bill
order by a.myDate DESC

这将获取具有最大(最新)a.myDate的不同记录,按您的其他元素分组。

注意重复。在select语句中使用重复的条件键,或者您绝对需要的任何元素都是不同的。