我想知道是否有人可以伸出援助之手。
我有一个很长的SQL查询。
我想要做的是分解存储日期的列,并按年份排序结果。部分查询如下:
SELECT CONVERT(CHAR(8), DateAdd(minute, -601, pay.Expiry), 10)
as DailyDate
FROM table
ORDER BY DailyDate
这给了我一个' DailyDate'以下列格式输出:
12-07-14
年份是最后2位数。
有没有办法可以根据这2位数对结果进行排序?
任何帮助都会很棒。
干杯,
答案 0 :(得分:2)
使用此查询。
SELECT CONVERT(CHAR(8), DateAdd(minute, -601, DailyDate ), 10) as DailyDate FROM
table
ORDER BY SUBSTRING(CONVERT(CHAR(8), DateAdd(minute, -601, DailyDate ), 10), 7, 2),
SUBSTRING(CONVERT(CHAR(8), DateAdd(minute, -601, DailyDate ), 10), 4, 2)
答案 1 :(得分:1)
... ORDER BY SUBSTRING(DailyDate, 7, 2)
答案 2 :(得分:1)
你可以这样做:
ORDER BY right(DailyDate,2)
您将仅从右侧的最后两个数字(在您的情况下是年份)订购数据
答案 3 :(得分:0)
SELECT CONVERT(CHAR(8), DateAdd(minute, -601, pay.Expiry), 10) as DailyDate FROM table ORDER BY ( YEAR( DateAdd(minute, -601, pay.Expiry)) % 100 ) ASC,( DateAdd(minute, -601, pay.Expiry) ASC
以下代码不是强制性的,不是强制性的
(DateAdd(分钟,-601,pay.Expiry)ASC
您需要的代码是
(YEAR(DateAdd(分钟,-601,pay.Expiry))%100)ASC
答案 4 :(得分:0)