分类: 数据库开发技术
2012-03-05 10:21:57
Access中:
Access 在内部以 浮点数的形式存储“日期/时间”值。每一个此类数值均包含日期和时间两部分。小数点左边的整数部分表示日期。小数点右边的小数部分表示时间。
此处显示的双精度数值表示 2003 年 12 月 24 日下午 9:00,即 37979.875。这是因为 Access 在日期部分存储的值是从基准日期 1899 年 12 月 30 日算起的经过天数。从基准日期 1899 年 12 月 30 日到 2003 年 12 月 24 日正好是 37,979 天。
日期部分是负值表示在基准日期之前的日期。例如,日期部分值为 -1 表示基准日期前一天,即 1899 年 12 月 29 日。时间部分数值代表相对于 24 小时一整天的经过比例,因此时间部分值为 .875 表示经过 21 小时,即下午 9:00。
因为 Access 在内部表示“日期/时间”值的形式(如示例中的 37979.875)与通常使用的形式不同,将内部双精度格式的“日期/时间”值转换为通常使用的格式就非常重要。您可以使用 Access 内置函数 CDate() 进行这一转换。
函数是执行若干步骤操作并返回结果的过程。Access 包括很多内置函数,您可以使用这些函数在数据库应用程序中执行计算等操作,或与本例一样,将一种日期类型转换为另一种类型。CDate() 函数可以将双精度数值转换为“日期/时间”值。您可以使用 CDbl() 函数执行相反操作,将“日期/时间”值转换为等效的双精度数值。
SQL Server中:
timestamp在SQL server中是减去1900-1-1这天的天数得到的,比如输入2004-12-12那么这个日期在数据库中的值就为38331,
datetime类型数据长度为8字节,日期和时间分别使用4个字节存储,前4个字节用于存储datetime类型数据中距1900年1月1日的天数(负数表示在1900年1月1号之前, 正数就是1900年1月1号之后), 后4个字节用于存储datetime类型数据中距12:00(24小时制)的毫秒数.
mysql:
TIMESTAMP[(M)]
一个时间戳。范围是 '1970-01-01 00:00:00' 到 2037 年间的任意时刻。 MySQL 4.0 和更早版本中,TIMESTAMP 值是以 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD 格式显示的,它取决于 M 是否是 14 (或省略)、12、8 或 6,但是允许你以字符串或数字给一个 TIMESTAMP 列赋值。 从 MySQL 4.1 开始,TIMESTAMP 以 'YYYY-MM-DD HH:MM:DD' 格式作为字符返回。如果你你希望以数字形式返回则必须在该时间戳字段后加上 +0
T-SQL timestamp 数据类型与在 SQL-92 标准中定义的 timestamp 数据类型是不同的。
SQL-92 timestamp 数据类型等价于 T-SQL 中的 datetime 数据类型。
MySQL 也是遵循于 SQL-92 的,
所以在 MySQL 中, datetime 在数据库里保存的就是 YYYYMMDDHHMMSS
如果希望得到一个 从 '1970-01-01 00:00:00' GMT 开始经过的秒数值,
你可以调用 函数
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
转:
SQL Server 应用教程