Archive for the ‘mysql millisecond’ Category

Glad to See Microsecond Support in both MariaDB and MySQL Now

Декабрь 8th, 2011

As you may or may not know, MariaDB has supported microseconds in version 5.3 for several months already.

And now MySQL has added microsecond support in version 5.6 (5.6.4, specifically).

For more details on MariaDB microseconds, please refer to this page:

http://kb.askmonty.org/en/microseconds-in-mariadb

And for more details on MySQL microseconds, see “Fractional Seconds Handling” on the following page:

http://dev.mysql.com/doc/refman/5.6/en/news-5-6-4.html

From what I can tell, the implementation looks largely to be the same (at least from a user perspective), in that if the fractional part is given, it must be an integer number 0 to 6. And if no precision is given, the default is 0, for backward compatibility.

MySQL 5.6 is still in the “Development” phase, and MariaDB 5.3 is in the “Beta” phase, so I’d expect MariaDB 5.3 to be GA first, but that’s just a guesstimate on my part.


PlanetMySQL Voting: Vote UP / Vote DOWN

Datetime & Timestamp manipulation / migration explained

Июнь 15th, 2010

Are you doing some datetime manipulation or maybe you are migrating from some database technology to MySQL or possibly using milliseconds?
Here is an example on how to go about it:

Say you have the following date: MAR 16 2008 09:12:51:893AM
SELECT DATE_FORMAT(STR_TO_DATE('MAR 16 2008 09:12:51:893AM','%M %d %Y %h:%i:%s:%f%p'),'%Y%m%d%k%i%s.%f'); --> 2008031691251.893000

What if its PM rather than AM
SELECT DATE_FORMAT(STR_TO_DATE('MAR 16 2008 09:12:51:893PM','%M %d %Y %h:%i:%s:%f%p'),'%Y%m%d%k%i%s.%f'); --> 20080316211251.893000

Ok so this is just simple string manipulation where:
%M is the month name
%d is day number
%Y is the year
%h is the hour
%i is the minute
%s is the second
%f is the microsecond
%p is the period: ante or post meridiem

In the DATE_FORMAT part we se a %k which is in 24hr format in order to loose the period.

A more detailed list is found here

Here is a demo:

mysql Tue Jun 15 12:32:37 2010 > CREATE TABLE test.abc(a DECIMAL(17,3)) ENGINE=MYISAM;
Query OK, 0 rows affected (0.03 sec)

mysql Tue Jun 15 12:32:45 2010 > INSERT INTO abc VALUES ( DATE_FORMAT(STR_TO_DATE('MAR 16 2008 09:12:51:893PM','%M %d %Y %h:%i:%s:%f%p'),'%Y%m%d%k%i%s.%f') );
Query OK, 1 row affected (0.01 sec)

mysql Tue Jun 15 12:32:51 2010 > SELECT * FROM abc;
+--------------------+
| a                  |
+--------------------+
| 20080316211251.893 |
+--------------------+
1 row in set (0.00 sec)

mysql Tue Jun 15 12:32:56 2010 > SELECT TIMESTAMP(a) FROM abc;
+----------------------------+
| TIMESTAMP(a)               |
+----------------------------+
| 2008-03-16 21:12:51.893000 |
+----------------------------+
1 row in set (0.00 sec)


PlanetMySQL Voting: Vote UP / Vote DOWN