MySQL get current datetime (and time conversion)

1.1 Get the current date + time (date + time) function: now()
In addition to the now() function that can get the current date and time, there are the following functions in MySQL:
current_timestamp() current_timestamp
localtime() localtime
localtimestamp() localtimestamp   
these Datetime functions are equivalent to now(). Given that the now() function is short and easy to remember, it is recommended to always use now() instead of the functions listed above.

1.2 Get the current date + time (date + time) function: sysdate()
sysdate() date and time function is similar to now(), the difference is: now() gets the value at the beginning of execution, sysdate() is in the function Get the value dynamically at execution time.

2. Get the current date (date) function: curdate()
Among them, the following two date functions are equivalent to curdate(): current_date(), current_date

3. Get the current time (time) function: curtime()
Among them, the following two A time function is equivalent to curtime(): current_time(), current_time

4. Get the current UTC date and time function: utc_date(), utc_time(), utc_timestamp()
Because China is located in the East Eighth time zone, so local time = UTC time + 8 hours . UTC time is very useful when the business involves multiple countries and regions.

Second, the MySQL date and time Extract (select) function.
1. Select each part of the date and time: date, time, year, quarter, month, day, hour, minute, second, microsecond
set @dt = '2008-09-10 07:15:30.123456';

select date(@ dt); -- 2008-09-10
select time(@dt); -- 07:15:30.123456
select year(@dt); -- 2008
select quarter(@dt); -- 3
select month(@dt) ; -- 9
select week(@dt); -- 36
select day(@dt); -- 10
select hour(@dt); -- 7
select minute(@dt); -- 15
select second(@dt) ; -- 30
select microsecond(@dt); -- 123456

2. MySQL Extract() function, which can achieve similar functions above:
set @dt = '2008-09-10 07:15:30.123456';

select extract(year from @dt); -- 2008
select extract(quarter from @dt); -- 3
select extract(month from @dt); -- 9
select extract(week from @dt); -- 36
select extract(day from @dt); -- 10
select extract(hour from @dt); -- 7
select extract(minute from @dt); -- 15
select extract(second from @dt); -- 30
select extract(microsecond from @dt); -- 123456
select extract(year_month from @dt); -- 200809
select extract(day_hour from @dt); -- 1007
select extract(day_minute from @dt); -- 100715
select extract(day_second from @dt); -- 10071530
select extract(day_microsecond from @dt); -- 10071530123456
select extract(hour_minute from @dt); -- 715
select extract(hour_second from @dt); -- 71530
select extract(hour_microsecond from @dt); -- 71530123456
select extract(minute_second from @dt); -- 1530
select extract(minute_microsecond from @dt); -- 1530123456
select extract(second_microsecond from @dt); -- 30123456
MySQL Extract The () function has all the functions except date() and time(). And also has functions such as selecting 'day_microsecond'. Note that instead of selecting only day and microsecond, we select from the day part of the date to the microsecond part.
The only bad thing about the MySQL Extract() function is that you need to hit the keyboard a few more times.

3. MySQL dayof… function: dayofweek(), dayofmonth(), dayofyear()
respectively return the date parameter, the position in the week, January and year.
set @dt = '2008-08-08';
select dayofweek(@dt); -- 6
select dayofmonth(@dt); -- 8
select dayofyear(@dt); -- 221
The date '2008-08-08' is the 6th day of the week (1 = Sunday, 2 = Monday, …, 7 = Saturday); the 8th day of January; the 221st day of the year.

4. MySQL week… function: week(), weekofyear(), dayofweek(), weekday(), yearweek()
set @dt = '2008-08-08';
select week(@dt); -- 31
select week (@dt,3); -- 32
select weekofyear(@dt); -- 32
select dayofweek(@dt); -- 6
select weekday(@dt); -- 4
select yearweek(@dt); -- 200831
The MySQL week() function can have two parameters, see the manual for details. weekofyear(), like week(), calculates the week of the year that "day" is. weekofyear(@dt) is equivalent to week(@dt,3).
The MySQL weekday() function is similar to dayofweek() in that it returns the position of the day in the week. The difference lies in the reference standard, weekday: (0 = Monday, 1 = Tuesday, …, 6 = Sunday); dayofweek: (1 = Sunday, 2 = Monday, …, 7 = Saturday)
MySQL yearweek() function, returns year (2008) + week location (31).

5. MySQL returns week and month name functions: dayname(), monthname()
set @dt = '2008-08-08';
select dayname(@dt); -- Friday
select monthname(@dt); -- August

6 . MySQL last_day() function: Returns the last day of the month.
select last_day('2008-02-01'); -- 2008-02-29
select last_day('2008-08-08'); -- 2008-08-31


Third, MySQL date and time calculation function
1. MySQL is date Add a time interval: date_add()
set @dt = now();
select date_add(@dt, interval 1 day); -- add 1 day
select date_add(@dt, interval 1 hour); -- add 1 hour
select date_add (@dt, interval 1 minute); -- ...
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);select date_add(@dt, interval -1 day); -- sub 1 day

MySQL adddate(), addtime() functions can be replaced by date_add(). The following is an example of date_add() implementing addtime() function:
mysql> set @dt = '2008-08-09 12:12:33';
mysql> select date_add(@dt, interval '01:15:30' hour_second);
+------------------------------------------------+
| date_add(@dt, interval '01:15:30' hour_second) |
+-------------------------------- ----------------+
| 2008-08-09 13:28:03 |
+-------------------- ----------------------------+
mysql> select date_add(@dt, interval '1 01:15:30' day_second);
+------------------------------------------------- +
| date_add(@dt, interval '1 01:15:30' day_second) |
+-------------------------------------------- -------------------+
| 2008-08-10 13:28:03 |
+----------------- --------------------------------+
date_add() function, adding "1 hour 15 minutes 30 to @dt respectively seconds" and "1 day 1 hour 15 minutes 30 seconds".
Recommendation: Always use the date_add() datetime function instead of adddate(), addtime(). <br><br>

2. MySQL subtracts a time interval from the date: date_sub()
MySQL date_sub() datetime function is the same as date_add(), so I won't repeat it. In addition, there are two functions subdate() and subtime() in MySQL. It is recommended to use date_sub() instead.

3. MySQL alternative date functions: period_add(P,N), period_diff(P1,P2)
function parameter "P" format is "YYYYMM" or "YYMM", the second parameter "N" means to add or subtract N month (moon).
MySQL period_add(P,N): Date plus/minus N months.

4. MySQL date and time subtraction function: datediff(date1,date2), timediff(time1,time2)
MySQL datediff(date1,date2): subtract date1 - date2 from two dates and return the number of days.
select datediff('2008-08-08', '2008-08-01'); -- 7
select datediff('2008-08-01', '2008-08-08'); -- -7
MySQL timediff( time1,time2): subtract time1 - time2 from two dates and return the time difference.
select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08
select timediff('08:08:08', '00 :00:00'); -- 08:08:08
Note: The two parameter types of the timediff(time1,time2) function must be the same.

4. MySQL date conversion function, time conversion function
1. MySQL (time, second) conversion function: time_to_sec(time), sec_to_time(seconds)
select time_to_sec('01:00:05'); -- 3605
select sec_to_time(3605) ; -- '01:00:05'

2.













4. MySQL Date/Time to Str function: date_format(date,format), time_format(time,format)
MySQL date and time conversion function: date_format(date,format), time_format(time, format) can convert a date/time to various string formats. It is an inverse transformation of the str_to_date(str,format) function.

5. MySQL get the country and region time format function: get_format()
MySQL get_format() Syntax:
get_format(date|time|datetime, 'eur'|'usa'|'jis'|'iso'|'internal'
MySQL get_format() Full example of usage:
select get_format(date,'usa') ; -- '%m.%d.%Y'
select get_format(date,'jis') ; -- '%Y-%m-%d'
select get_format(date,'iso') ; -- '%Y-%m-%d'
select get_format(date,'eur') ; -- '%d.%m.%Y'
select get_format(date,'internal ') ; -- '%Y%m%d'

select get_format(datetime,'jis') ; -- '%Y-%m-%d %H:%i:%s'
select get_format(datetime,'iso') ; -- '%Y-%m-%d %H:%i:%s'
select get_format(datetime,'eur') ; -- '%Y-%m-%d %H.%i.%s'
select get_format(datetime,'internal') ; -- '%Y%m%d%H%i%s'
select get_format(time,'usa') ; -- '%h:%i:%s %p'
select get_format(time,'jis') ; -- '%H:%i:%s'
select get_format(time,'iso') ; -- '%H:%i:%s'
select get_format(time,'eur') ; -- '%H.%i.%s'
select get_format(time,'internal') ; -- '%H%i%s'
MySQL get_format() 函数在实际中用到机会的比较少。

6. MySQL 拼凑日期、时间函数:makdedate(year,dayofyear), maketime(hour,minute,second)
select makedate(2001,31); -- '2001-01-31'
select makedate(2001,32); -- '2001-02-01'select maketime(12,15,30); -- '12:15:30'

5. MySQL Timestamp function
1. MySQL gets the current Timestamp functions: current_timestamp, current_timestamp()
2. MySQL (Unix timestamp, date) conversion functions:
unix_timestamp(),
unix_timestamp(date),
from_unixtime(unix_timestamp),
from_unixtime(unix_timestamp,format)

3. MySQL timestamp (timestamp) Conversion, increment and decrement functions:
timestamp(date) -- date to timestamp
timestamp(dt,time) -- dt + time
timestampadd(unit,interval,datetime_expr) --
timestampdiff(unit,datetime_expr1,datetime_expr2) --
MySQL timestampdiff( ) function is much more powerful than datediff(), datediff() can only calculate the difference in days between two dates.

6. MySQL time zone (timezone) conversion function convert_tz(dt,from_tz,to_tz)select convert_tz('2008-08-08 12:00:00', '+08:00', '+00:00'); -- 2008-08-08 04:00:00
Time zone conversion can also be achieved by date_add, date_sub, timestampadd.
select date_add('2008-08-08 12:00:00', interval -8 hour); -- 2008-08-08 04:00:00
select date_sub('2008-08-08 12:00:00', interval 8 hour); -- 2008-08-08 04:00:00
select timestampadd(hour, -8, '2008-08-08 12:00:00'); -- 2008-08-08 04:00: 00

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=327043365&siteId=291194637