首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

mysql计算时间

一、MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ | 2008-08-08 22:20:46 | +---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_timestamp ,localtime() ,localtime ,localtimestamp -- (v4.0.6) ,localtimestamp() -- (v4.0.6) 这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。 1.2 获得当前日期+时间(date + time)函数:sysdate() sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了: mysql> select now(), sleep(3), now(); +---------------------+----------+---------------------+ | now() | sleep(3) | now() | +---------------------+----------+---------------------+ | 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 | +---------------------+----------+---------------------+ mysql> select sysdate(), sleep(3), sysdate(); +---------------------+----------+---------------------+ | sysdate() | sleep(3) | sysdate() | +---------------------+----------+---------------------+ | 2008-08-08 22:28:41 | 0 | 2008-08-08 22:28:44 | +---------------------+----------+---------------------+ 可以看到,虽然中途 sleep 3 秒,但 now() 函数两次的时间值是相同的; sysdate() 函数两次得到的时间值相差 3 秒。MySQL Manual 中是这样描述 sysdate() 的:Return the time at which the function executes。 sysdate() 日期时间函数,一般情况下很少用到。 2. 获得当前日期(date)函数:curdate() mysql> select curdate(); +------------+ | curdate() | +------------+ | 2008-08-08 | +------------+ 其中,下面的两个日期函数等同于 curdate(): current_date() ,current_date 3. 获得当前时间(time)函数:curtime() mysql> select curtime(); +-----------+ | curtime() | +-----------+ | 22:41:30 | +-----------+ 其中,下面的两个时间函数等同于 curtime(): current_time() ,current_time 4. 获得当前 UTC 日期时间函数:utc_date(), utc_time(), utc_timestamp() mysql> select utc_timestamp(), utc_date(), utc_time(), now() +---------------------+------------+------------+---------------------+ | utc_timestamp() | utc_date() | utc_time() | now() | +---------------------+------------+------------+----------

02

解决axis2处理java.util.Date类型对象时丢弃时间部分的问题

我目前在做的一个项目以axis2为webservice框架,客户端和服务器端要传输很多复杂对象,在这方面,axis2做得不错,基本满足了我的需要,但当我把客户端提供给要使用的同事时,同事发现了一个问题:就是所有java.util.Date类型的对象,不论从服务器发到客户端的还是从客户端发送到服务器的,都只剩下日期部分(年/月/日),时间部分(时/分/秒)则被抹掉了。。。百思不得其姐啊。。。 这是几个月前的事儿了,那时,这个问题并不影响整个系统的开发,所以一直搁置在那里,最近整个系统接近完成了。做为一个重要但不紧急的问题,我又重新开始研究axis2的代码,着手解决这个问题。 很多人遇到这个问题,把这归结为axis2的bug,但我认为,这是axis2遵循WSDL规范设计的,这个设计的确有些反人类,异于通常技术人员对Date的理解和使用习惯,其实也可以说我们是对webservice的理解不足导致,对于这个问题的理解我也是一点一点加深的。 webservice设计的目标是跨平台的数据交换,所以描述webservice的WSDL( Web Services Description Language)定义了很多基本数据类型(byte,int,long,short,…..),而对于日期时间则分别定义了date,time和dateTime三种不同的类型。

02

MySQL基础知识之函数

SELECT EXTRACT(MINUTE FROM '2011-11-11 11:11:11') -> 11 FROM_DAYS(n)计算从 0000 年 1 月 1 日开始 n 天后的日期 SELECT FROM_DAYS(1111) -> 0003-01-16 HOUR(t)返回 t 中的小时值 SELECT HOUR('1:2:3') -> 1 LAST_DAY(d)返回给给定日期的那一月份的最后一天 SELECT LAST_DAY("2017-06-20"); -> 2017-06-30 LOCALTIME()返回当前日期和时间 SELECT LOCALTIME() -> 2018-09-19 20:57:43 LOCALTIMESTAMP()返回当前日期和时间 SELECT LOCALTIMESTAMP() -> 2018-09-19 20:57:43 MAKEDATE(year, day-of-year)基于给定参数年份 year 和所在年中的天数序号 day-of-year 返回一个日期 SELECT MAKEDATE(2017, 3); -> 2017-01-03 MAKETIME(hour, minute, second)组合时间,参数分别为小时、分钟、秒 SELECT MAKETIME(11, 35, 4); -> 11:35:04 MICROSECOND(date)返回日期参数所对应的微秒数 SELECT MICROSECOND("2017-06-20 09:34:00.000023"); -> 23 MINUTE(t)返回 t 中的分钟值 SELECT MINUTE('1:2:3') -> 2 MONTHNAME(d)返回日期当中的月份名称,如 November SELECT MONTHNAME('2011-11-11 11:11:11') -> November MONTH(d)返回日期d中的月份值,1 到 12 SELECT MONTH('2011-11-11 11:11:11') ->11 NOW()返回当前日期和时间 SELECT NOW() -> 2018-09-19 20:57:43 PERIOD_ADD(period, number)为 年-月 组合日期添加一个时段 SELECT PERIOD_ADD(201703, 5); -> 201708 PERIOD_DIFF(period1, period2)返回两个时段之间的月份差值 SELECT PERIOD_DIFF(201710, 201703); -> 7 QUARTER(d)返回日期d是第几季节,返回 1 到 4 SELECT QUARTER('2011-11-11 11:11:11') -> 4 SECOND(t)返回 t 中的秒钟值 SELECT SECOND('1:2:3') -> 3 SEC_TO_TIME(s)将以秒为单位的时间 s 转换为时分秒的格式 SELECT SEC_TO_TIME(4320) -> 01:12:00 STR_TO_DATE(string, format_mask)将字符串转变为日期 SELECT STR_TO_DATE("August 10 2017", "%M %d %Y"); -> 2017-08-10 SUBDATE(d,n)日期 d 减去 n 天后的日期 SELECT SUBDATE('2011-11-11 11:11:11', 1) ->2011-11-10 11:11:11 (默认是天) SUBTIME(t,n)时间 t 减去 n 秒的时间 SELECT SUBTIME('2011-11-11 11:11:11', 5) ->2011-11-11 11:11:06 (秒) SYSDATE()返回当前日期和时间 SELECT SYSDATE() -> 2018-09-19 20:57:43 TIME(expression)提取传入表达式的时间部分 SELECT TIME("19:30:10"); -> 19:30:10 TIME_FORMAT(t,f)按表达式 f 的要求显示时间 t SELECT TIME_FORMAT('11:11:11','%r') 11:11:11 AM TIME_TO_SEC(t)将时间 t 转换为秒 SELECT TIME_TO_SEC('1:12:00') -> 4320 TIMEDIFF(time1, time2)计算时间差值 SELECT TIMEDIFF("13:10:11", "13:10:10"); -> 00:00:01 TIMESTAMP(expression, interval)单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和 SELECT TIMESTAM

04
领券