sql时间处理(使用函数DATEPART和STR)
最近在项目中碰到一个功能,需要获取当前的时间部分作为参数的一部分拼接起来和数据库中的进行比较,而数据库中的日期部分是固定不变的(2000-01-01),语句如下:
View Code
1 select * from PrintItinerary where AirTerminalID=1 and airPort='pek'
2 and isActive=1 and PrintType=1 and
3 StartTime<=('2000-01-01 '+str(DATEPART(hour, getdate()))+':'+str(DATEPART(minute, getdate()))+':00')
4 and EndTime>= ('2000-01-01 '+str(DATEPART(hour, getdate()))+':'+str(DATEPART(minute, getdate()))+':00')
这条语句里面的主要就是要注意时间参数的部分,是以拼接的形式实现的,提取之后就是如下两种:
View Code
1 select ('2000-01-01 '+str(DATEPART(hour, getdate()),2)+':'+str(DATEPART(minute, getdate()),2)+':00')
2 select ('2000-01-01 '+str(DATEPART(hour, getdate()))+':'+str(DATEPART(minute, getdate()))+':00')
得到如下形式结果:
注意这里如果当前小时(分,秒)是没有超过10的话(假若分钟是3而定)。第一条语句得到的是形如:“2000-01-01 15: 3:12”。