Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MYSQL - datetime to seconds

Tags:

datetime

mysql

I wasn't able to find out (googling, reading mysql reference manual) how to get value of DATETIME in seconds in MySQL.

I dont mean to extract seconds from datetime, but to convert it into seconds.

like image 393
Mike Avatar asked Mar 13 '10 15:03

Mike


People also ask

How do I convert time to seconds in MySQL?

MySQL TIME_TO_SEC() Function The TIME_TO_SEC() function converts a time value into seconds.

How do you convert seconds to HH MM SS in MySQL?

The other way is to use the MySQL SEC_TO_TIME() function. The MySQL SEC_TO_TIME() function is used to return a time value in format HH:MM:SS from the specified number of seconds. In other words, it converts a value in seconds only to the format HH:MM:SS.

What is MySQL datetime format?

The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in ' YYYY-MM-DD hh:mm:ss ' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59' . The TIMESTAMP data type is used for values that contain both date and time parts.

What is precision of datetime MySQL?

MySQL permits fractional seconds for TIME , DATETIME , and TIMESTAMP values, with up to microseconds (6 digits) precision.


2 Answers

If by "convert to seconds", you mean "convert to an UNIX Timestamp" (i.e. number of seconds since 1970-01-01), then you can use the UNIX_TIMESTAMP function :

select UNIX_TIMESTAMP(your_datetime_field) from your_table where ... 


And, for the sake of completness, to convert from an Unix Timestamp to a datetime, you can use the FROM_UNIXTIME function.

like image 130
Pascal MARTIN Avatar answered Sep 23 '22 04:09

Pascal MARTIN


If you want to have the difference between two DATETIME values, use TIMESTAMPDIFF:

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Returns datetime_expr2 – datetime_expr1, where datetime_expr1 and datetime_expr2 are date or datetime expressions. One expression may be a date and the other a datetime; a date value is treated as a datetime having the time part '00:00:00' where necessary. The unit for the result (an integer) is given by the unit argument. The legal values for unit are the same as those listed in the description of the TIMESTAMPADD() function.

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');       -> 3      mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');       -> -1     mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');       -> 128885 

unit can also be HOUR which is what you asked for in one of the comments.

The unit argument can be any of the following:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

The level of usefulness of some of the other options will of course be determined by the granularity of the data. For instance, "MICROSECOND" will only have limited use if you are not storing microseconds in your DATETIME values.

like image 27
Felix Kling Avatar answered Sep 26 '22 04:09

Felix Kling