在mysql数据库中关于日期时间字段的处理
在开发中,日期时间字段一般有如下几种设计
假设要获取2013-08-15日到2013-08-16日之间的记录
1. 直接使用日期时间类字段
相关sql语句如下
select * from cms_news where
news_add_time between str_to_date("2013-08-15 00:00:00",'%Y-%m-%d %H:%i:%s') and str_to_date("2013-08-16 23:59:59",'%Y-%m-%d %H:%i:%s')
order by news_add_time desc limit 1000
2. 使用long型的数字表示时间
select * from cms_news where
news_add_time>=1376496000000 and news_add_time<=1376668799000
order by news_add_time desc limit 1000
package com.yanek.test; public class DateTool { /** * @param args */ public static void main(String[] args) { String startDate="2013-08-15"; String enddate="2013-08-16"; String s1="2013-08-27 00:00:00"; String s2="2013-08-27 23:59:59"; String sql = "select * from cms_news where news_time between str_to_date(""+s1+"",'%Y-%m-%d %H:%i:%s') and str_to_date(""+s2+"",'%Y-%m-%d %H:%i:%s') order by news_time asc limit 1000"; long st1=1376496000000l; long st2=1376668799000l; String sql1 = "SELECT * FROM cms_news WHERE news_time >=" + st1 + " and lastmodified<="+st2+" ORDER BY news_time ASC LIMIT 100"; } }