[b]当变量字符串位数不足时,有时要填充字符,如比较年份月份时:[/b]
1. year = 2011, month = 9
2. year = 2011, month = 10
要比较两组月份(“201109”和“201110”)的先后
在oracle里可以这样:
而在sql server数据库中没有LPAD函数可用, 可以这样做
[color=blue]当然方法很多,这里只记录一种个人认为比较不错的方法。[/color]
1. year = 2011, month = 9
2. year = 2011, month = 10
要比较两组月份(“201109”和“201110”)的先后
在oracle里可以这样:
select XXX
from YYY
where (to_char(year1) || '-' || LPAD(to_char(month1), 2, '0')) > (to_char(year2) || '-' || LPAD(to_char(month2), 2, '0'))
而在sql server数据库中没有LPAD函数可用, 可以这样做
select XXX
from YYY
where (cast(year1 as varchar) + '-' + right('0'+cast(month1 as varchar), 2)) > (cast(year2 as varchar) + '-' + right('0'+cast(month2 as varchar), 2))
[color=blue]当然方法很多,这里只记录一种个人认为比较不错的方法。[/color]
本文讨论了在Oracle和SQL Server数据库中比较月份时如何处理字符串位数不足的问题,通过使用LPAD和类似技巧确保月份部分始终为两位数,从而实现正确的排序。
6226

被折叠的 条评论
为什么被折叠?



