你是说在数据库里面比较么?
mysql中日期比较大小2012-04-09 21:40可以用到以下两个方法,无论是timestamp还是datetime类型都可以使用
TO_DAYS(date)
给出一个日期date,返回一个天数(从0年的天数)。
mysql> select TO_DAYS(950501);
-> 728779
mysql> select TO_DAYS('1997-10-07');
-> 729669
UNIX_TIMESTAMP(date)
如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一
个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME
字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。
mysql> select UNIX_TIMESTAMP();
-> 882226357
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580
select from table where substr(time,'YYYY-MM-DD') > '2010-10-13'
后面的时间你在程序里面就将其转换为这种格式,
1 你用30补充日的信息,如果是二月怎么办,就报错了。
2 当前时间不需要这么复杂TO_DATE(to_char(TRUNC(SYSDATE),'yyyy/mm/dd'), 'yyyy/mm/dd')
TRUNC(SYSDATE) 即可
3 个人理解,你的年、月 字段 应该是数字类型吧,那么一个先转换(如果是字符,则不需转换):
TO_DATE(to_char(Dplan_year) || '/' || to_char(Dplan_month) || '/30', 'yyyy/mm/dd')
我给你一个思路:
当前日期 - (某年某月 第一日 + 1月 - 1日)
其中: 某年某月 第一日 + 1月 即下一月的第一天; 再 -1日 就是某年某月的 最后一天:
select from M_PLAN_INFO D WHERE TRUNC(SYSDATE) - (add_months(TO_DATE(to_char(Dplan_year) || '/' || to_char(Dplan_month) || '/30', 'yyyy/mm/dd'),1) - 1 ) > 30
access里 这句话好像就不好用了
sql="select from [table] where [时间字段]<'2010-03-02 19:02:11'"
在access里 只能这样对时间做比较 你写的那个函数是不好用的
以上就是关于mysql date和datetime 可以直接比较吗全部的内容,包括:mysql date和datetime 可以直接比较吗、c#如何将当前日期与数据库中的日期进行比较、oracle 数据库时间比较,请高手指点一下!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)