日期:2014-05-16  浏览次数:20507 次

在mysql数据库中关于日期时间字段的处理

在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";
		
	}

}