CURRENT_TIMESTAMP以毫秒为单位
有什么办法在MySql或PostgreSql (或其他人只是出于好奇)的时间戳获得毫秒? 
 SELECT CURRENT_TIMESTAMP --> 2012-03-08 20:12:06.032572 
有没有这样的事情:
 SELECT CURRENT_MILLISEC --> 1331255526000 
 或唯一的select是使用DATEDIFF从era ? 
在MySQL中以秒为单位获得Unix时间戳:
 select UNIX_TIMESTAMP(); 
详情: http : //dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp
没有testingPostgreSQL,但根据这个网站它应该工作: http : //www.raditha.com/postgres/timestamp.php
 select round( date_part( 'epoch', now() ) ); 
对于MySQL(5.6+),你可以这样做:
 SELECT ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000) 
哪个会返回(例如):
 1420998416685 --milliseconds 
在MySQL中,可以使用uuid函数来提取毫秒。
 select conv( concat( substring(uid,16,3), substring(uid,10,4), substring(uid,1,8)) ,16,10) div 10000 - (141427 * 24 * 60 * 60 * 1000) as current_mills from (select uuid() uid) as alias; 
结果:
 +---------------+ | current_mills | +---------------+ | 1410954031133 | +---------------+ 
它也适用于旧的MySQL版本!
谢谢了本页: http : //rpbouman.blogspot.com.es/2014/06/mysql-extracting-timstamp-and-mac.html
从PostgreSQL上的timestamp值中提取毫秒的正确方法是根据当前的文档 :
 SELECT date_part('milliseconds', current_timestamp); --OR SELECT EXTRACT(MILLISECONDS FROM current_timestamp); 
与返回:秒字段,包括小数部分,乘以1000.请注意,这包括整秒。
使用:
 Select curtime(4); 
这会给你毫秒。
在PostgreSQL中,你可以使用:
 SELECT extract(epoch from now()); 
在MySQL上:
 SELECT unix_timestamp(now()); 
这些反应都没有真正解决在PostgreSQL的问题,即:
以毫秒为单位获取date字段的unix时间戳
我有同样的问题,并testing了不同的以前的答复没有得到满意的结果。
最后,我find了一个非常简单的方法,可能是最简单的方法:
 SELECT (EXTRACT (EPOCH FROM <date_column>::timestamp)::float*1000 as unix_tms FROM <table> 
即:
- 我们提取了pgSQL的EPOCH ,也就是说,在时间戳谨慎的时候,我们的浮动秒列中的unix时间戳 (在一些复杂的查询中,如果这个转换不是显式的,pgSQL可能会出错)
- 然后我们将它浮动,并乘以1000,以毫秒为单位的值
在Mysql 5.7+中,您可以执行
 select current_timestamp(6) 
更多细节
https://dev.mysql.com/doc/refman/5.7/en/fractional-seconds.html
这里有一个适用于MariaDB和MySQL> = 5.6的expression式:
 SELECT (UNIX_TIMESTAMP(NOW()) * 1000000 + MICROSECOND(NOW(6))) AS unix_now_in_microseconds; 
 这依赖于NOW()始终在整个查询中返回相同时间的事实; 简单的UNIX_TIMESTAMP()也可能会工作,我不确定是基于文档 。 它还需要MySQL> = 5.6作为NOW()函数的新精度参数(MariaDB也可以)。 
我发现在MySql中以毫秒为单位接收当前时间最简单的方法:
 SELECT (UNIX_TIMESTAMP(NOW(3)) * 1000) 
由于MySql 5.6。
我觉得需要继续改进,所以在MySQL中:
当前时间戳(以毫秒为单位)
 floor(unix_timestamp(current_timestamp(3)) * 1000) 
给定date时间(3)的时间戳(以毫秒为单位):
 floor(unix_timestamp("2015-04-27 15:14:55.692") * 1000) 
将时间戳以毫秒为单位转换为datetime(3):
 from_unixtime(1430146422456 / 1000) 
将datetime(3)转换为以毫秒为单位的时间戳:
 floor(unix_timestamp("2015-04-27 14:53:42.456") * 1000) 
在MariaDB中,您可以使用
 SELECT NOW(4); 
要获得milisecs。 也看到这里 。
在PostgreSQL中我们使用这种方法:
 SELECT round(EXTRACT (EPOCH FROM now())::float*1000) 
 我最近面临同样的问题,我创build了一个小的github项目,其中包含一个新的mysql函数UNIX_TIMESTAMP_MS() ,它以毫秒为单位返回当前时间戳。 
您也可以执行以下操作:
  SELECT UNIX_TIMESTAMP_MS(NOW(3))或SELECT UNIX_TIMESTAMP_MS(DateTimeField) 
该项目位于: https : //github.com/silviucpp/unix_timestamp_ms
 编译你需要在项目根目录下运行make compile 。 
 然后,您只需要复制/usr/lib/mysql/plugin/的共享库(或者您的机器上的任何插件文件夹)。 
之后,只需打开一个mysql控制台并运行:
 CREATE FUNCTION UNIX_TIMESTAMP_MS RETURNS INT SONAME 'unix_timestamp_ms.so'; 
我希望这将有助于Silviu