Timestamp to milisecond conversion
You should take a look the TIMESTAMPDIFF function.

From the example 

mysql&gt; SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
        -&gt; 128885


You could use the microsecond unit and divide by 1000 - MySQL doesn't appear
to support milliseconds. HTH.

[EDIT in response to OP]

Take a  look at the code below - notice the 1 millisecond difference in the two
returned values. I tested for up to 50 years and it works fine on my 64 bit fedora linux system.

It is even accurate to 1 microsecond in 50 years - but you can use ROUND to 
get suitable values.

mysql&gt; SELECT TIMESTAMPDIFF(MICROSECOND, '2014-12-10 13:00:00.000', '2014-12-11 13:56:00.000')/1000 AS Milliseconds_Elapsed FROM Dual;
+----------------------+
| Milliseconds_Elapsed |
+----------------------+
|        89760000.0000 |
+----------------------+
1 row in set (0.00 sec)

mysql&gt; 
mysql&gt; SELECT TIMESTAMPDIFF(MICROSECOND, '2014-12-10 13:00:00.000', '2014-12-11 13:56:00.001')/1000 AS Milliseconds_Elapsed FROM Dual;
+----------------------+
| Milliseconds_Elapsed |
+----------------------+
|        89760001.0000 |
+----------------------+
1 row in set (0.00 sec)

mysql&gt; 


50 years (+ 1 microsecond)

mysql&gt; SELECT TIMESTAMPDIFF(MICROSECOND, '2014-12-10 13:00:00.000', '2062-12-11 13:56:00.001')/1000 AS Milliseconds_Elapsed FROM Dual;
+----------------------+
| Milliseconds_Elapsed |
+----------------------+
|   1514854560001.0000 |
+----------------------+
1 row in set (0.00 sec)

mysql&gt; 
mysql&gt; 
mysql&gt; SELECT TIMESTAMPDIFF(MICROSECOND, '2014-12-10 13:00:00.000', '2062-12-11 13:56:00.000001')/1000 AS Milliseconds_Elapsed FROM Dual;
+----------------------+
| Milliseconds_Elapsed |
+----------------------+
|   1514854560000.0010 |
+----------------------+
1 row in set (0.00 sec)

mysql&gt;