我搜索了这个论坛和其他人,但无法在我的Delphi 2010应用程序中获得解决方案。
我想按正确的月份顺序而不是按字母顺序命名我的结果。
这是我的代码:
hyear
hmonth
和provHedis
是表{{1}}中的字符串字段,我希望在1月到2月之间按顺序在dbgrid中显示结果。我希望这是有道理的。
我现在得到的是按月按字母顺序排列。
任何帮助表示赞赏。我是自学成才的初学者/新手(实际上是医生),所以请不要苛刻或居高临下的言论。
答案 0 :(得分:1)
将其设为子查询:
select
*
from
provHedis
where
provLastName = ''' + cbPLName.Text +'''
and
hyear = ''' + cbYear.Text + '''
order by case hmonth
when 'January' then 1
when 'February' then 2
when 'March' then 3
when 'April' then 4
when 'May' then 5
when 'June' then 6
when 'July' then 7
when 'August' then 8
when 'September' then 9
when 'October' then 10
when 'November' then 11
when 'December' then 12
else 13
end,
hyear
或:
ORDER BY [hyear],MONTH('1' + [hmonth] +'00')
或者看到这个答案:
convert month name in varchar to date so as to order by month
你可以有一个DATETIME
字段更容易缩短(不必在那里进行计算),如果你想显示你可以使用的月份名称:
DATENAME ( month, DateField )