网站建设资讯

NEWS

网站建设资讯

mysql怎么比较时间 mysql如何比较时间

mysql 日期在数据库中用char(14)来存储 取的时候怎么比较时间大小

1.首先,把读取出来的值转换成DateTime类型,因为字符串不能比较大小

专注于为中小企业提供网站设计、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业治多免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

DateTime dTimeDB1 = Convert.todateTime(数据库中的值);

DateTime dTimeDB2 = Convert.todateTime(数据库中的值);

2.然后,再进行比较

使用比较方法:

if(DateTime.Compare(dTimeDB1 ,dTimeDB2) 0)

说明:dTimeDB1 dTimeDB2即dTimeDB1 是晚于dTimeDB2的时间

当然也可以不使用比较方法,而直接比较时间大小,就像比较数值一样

mybatis中时间比较Date和String

在常规操作中,mysql中存在精确到年月日时分秒、年月日、年月、年的查询或者比较

mybatis中如何去实现这样:

精确度:时分秒

create_time #{endTime,jdbcType=TIMESTAMP}

精确度:年月日

create_time #{endTime,jdbcType=DATE}

date_format(create_time,'%y%m%d') =date_format( #{createTime},'%y%m%d')

String格式比较:

年月日方式比较

DATE_FORMAT(pay_plan_date,'%Y-%m-%d')=#{payPlanDate,jdbcType=VARCHAR}

mysql中

年月日 DATE_FORMAT(pay_plan_date,'%Y-%m-%d')='2020-11-30';

时分秒

where #{date} between begin_date and end_date, mysql中是否可以这样写来比较时间。

惯例,在等号左边尽量不要有对字段的运算,所以一般用法有:

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

Mysql 日期比较

这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内:

mysql SELECT something FROM table

WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) = 30;

DAYOFWEEK(date)

返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。

mysql select DAYOFWEEK('1998-02-03');

- 3

WEEKDAY(date)

返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。

mysql select WEEKDAY('1997-10-04 22:23:00');

- 5

mysql select WEEKDAY('1997-11-05');

- 2

DAYOFMONTH(date)

返回date的月份中日期,在1到31范围内。

mysql select DAYOFMONTH('1998-02-03');

- 3

DAYOFYEAR(date)

返回date在一年中的日数, 在1到366范围内。

mysql select DAYOFYEAR('1998-02-03');

- 34

MONTH(date)

返回date的月份,范围1到12。

mysql select MONTH('1998-02-03');

- 2

DAYNAME(date)

返回date的星期名字。

mysql select DAYNAME("1998-02-05");

- 'Thursday'

MONTHNAME(date)

返回date的月份名字。

mysql select MONTHNAME("1998-02-05");

- 'February'

QUARTER(date)

返回date一年中的季度,范围1到4。

mysql select QUARTER('98-04-01');

- 2

WEEK(date)

WEEK(date,first)

对于星期天是一周的第一天的地方,有一个单个参数,返回date的周数,范围在0到52。2个参数形式WEEK()允许

指定星期是否开始于星期天或星期一。如果第二个参数是0,星期从星期天开始,如果第二个参数是1,

从星期一开始。

mysql select WEEK('1998-02-20');

- 7

mysql select WEEK('1998-02-20',0);

- 7

mysql select WEEK('1998-02-20',1);

- 8

YEAR(date)

返回date的年份,范围在1000到9999。

mysql select YEAR('98-02-03');

- 1998

HOUR(time)

返回time的小时,范围是0到23。

mysql select HOUR('10:05:03');

- 10

MINUTE(time)

返回time的分钟,范围是0到59。

mysql select MINUTE('98-02-03 10:05:03');

- 5

SECOND(time)

回来time的秒数,范围是0到59。

mysql select SECOND('10:05:03');

- 3

PERIOD_ADD(P,N)

增加N个月到阶段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。注意阶段参数P不是日期值。

mysql select PERIOD_ADD(9801,2);

- 199803

PERIOD_DIFF(P1,P2)

返回在时期P1和P2之间月数,P1和P2应该以格式YYMM或YYYYMM。注意,时期参数P1和P2不是日期值。

mysql select PERIOD_DIFF(9802,199703);

- 11

DATE_ADD(date,INTERVAL expr type)

DATE_SUB(date,INTERVAL expr type)

ADDDATE(date,INTERVAL expr type)

SUBDATE(date,INTERVAL expr type)

这些功能执行日期运算。对于MySQL 3.22,他们是新的。ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词。


网页名称:mysql怎么比较时间 mysql如何比较时间
本文URL:http://cdweb.net/article/ddsgjod.html