mysql中时间的储存方式_数据库 中“日期/时间”存储方式

Access中:

Access 在内部以 双精度浮点数的形式存储“日期/时间”值。每一个此类数值均包含日期和时间两部分。小数点左边的整数部分表示日期。小数点右边的小数部分表示时间。

856cac7fb126814bd7009d3ca34cdfca.png

此处显示的双精度数值表示 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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值