如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。
比如 2010 年 10 月 4 日,在 Excel 中为 40455 ,在 Matlab 中为 734415 ,在 SQL 里为 40453。
事实上,当一个日期被转化为数字时,
故对于一般的日期( 1900-03-01 以后)有以下关系式:
Matlab_datetime = Excel_datetime + 693960;
SQL_datetime = Excel_datetime - 2;
Matlab_datetime = SQL_datetime + 693962;
在 Matlab 和 Excel 之间交换日期数据时,可以直接用上面的公式,也可以考虑用下面的 mdatestr 代替 datestr ,它会自动分辨是 Matlab 系统中的日期数据还是 Excel 系统中的日期数据。
同时,在 SQL 读取日期数据的时候需作如下处理:
% 读入日期数据到Matlab中
select CONVERT(float, mydate) + 693962
% 读入日期数据到Excel中
select CONVERT(float, mydate) + 2