不必关系格式的问题 mysql会帮你处理的
小于今天的 你可以用
< DATE_FORMAT(CURDATE(), 'MM-dd-yyyy')
惯例,在等号左边尽量不要有对字段的运算,所以一般用法有:1、判断其是否在某个日期区间:
Where CheckDate Between '2013-01-01' And '2013-01-31'
这个方法也可用于加几天是多少,或减几天是多少:
把起迄日期参数化,原CheckDate要加的,那就变成@BeginDate加,减也同理~
2、判断其是否大于某天:
Where CheckDate >'2013-01-01' 或大于等于:Where CheckDate >='2013-01-01'
小于某天
Where CheckDate <'2013-01-01' 或小于等于:Where CheckDate <='2013-01-01'
3、判断其是否等于某天:
如果Check字段不带时间,只是年月日,那直接等于就可以了;
Where CheckDate ='2013-01-01'
如果CheckDate字段是携带时间的就会有差别;这一点,在上述所有方法中都需要注意
eg:CheckDate 实际存储值可能是: 20130101 08:50:54:000 或 20130101 22:50:54:000
这时直接用上面的等号是抓不到的,因此或改写成:
Where CheckDate >= '2013-01-01' And CheckDate <'2013-01-02'
当然也可以把'2013-01-01',定义为参数@Date DateTime
Where CheckDate >= @Date And CheckDate <@Date+1
不建议在等号左边使用函数或计算对表字段进行计算。
以上是两个日期的判断,另外有些日期处理函数可以了解一下:
DATEDIFF ( datepart , startdate , enddate )
返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。
eg:
Select DateDiff(DAY,'20130101','20130105')
1号到5号相差4天,输出结果为4
常用的datepart 有:
datepart缩写
year yy, yyyy 年
month mm, m 月
day dd, d 日
week wk, ww 周
hour hh 时
minute mi, n 分
second ss, s 秒
DATEADD(datepart, number, date)
将表示日期或时间间隔的数值与日期中指定的日期部分相加后,返回一个新的 DT_DBTIMESTAMP 值。number 参数的值必须为整数,而 date 参数的取值必须为有效日期。
eg:
Select DATEADD(DAY,1,'20130101')
1号加1天就是2号;输出结果为 ‘2013-01-02’
Number可以是负数就变成减几天
DATEADD(datepart, number, date)
将表示日期或时间间隔的数值与日期中指定的日期部分相加后,返回一个新的 DT_DBTIMESTAMP 值。number 参数的值必须为整数,而 date 参数的取值必须为有效日期。
eg:
Select DATEPART(DAY,'20130101')
返回datepart描述的部分,输出结果为 1
DateDiff()函数返回两个日期之间的差值 。
表达式 DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]])
允许数据类型: timeinterval 表示相隔时间的类型,如“M“表示“月”。
实例: <%
fromDate = #9/9/00#
toDate = #1/1/2000#
response.write "There are " &_
DateDiff("d",fromDate,toDate) &_
" days to millenium from 9/9/00."
%>
返回结果: 从9/9/00 到2000年还有 150 天.
返回他们相差的天或者小时或者秒. 第一个日期比第二个大的话 返回正值,小就返回负值.判断大于0或者笑语0就可以判断他们的大小了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)