导航:首页 > 编程大全 > 时间戳在数据库表示

时间戳在数据库表示

发布时间:2021-02-20 17:27:40

㈠ 什么是mysql 的时间戳

1、将时间转换为时间戳

[sql] view plainprint?
select unix_timestamp('2009-10-26 10-06-07')

如果参数为空,则处理为当前时间
2、将时间戳转换为时间

[sql] view plainprint?
select from_unixtime(1256540102)

有些应用生成的时间戳是比这个多出三位,是毫秒表示,如果要转换,需要先将最后三位去掉,否则返回NULL

UNIX_TIMESTAMP(date)
如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的 本地时间的一个数字。

[sql] view plainprint?
mysql> select UNIX_TIMESTAMP();
-> 882226357
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580

当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数将直接接受值,没有隐含的“string-to-unix-timestamp”变换。

FROM_UNIXTIME(unix_timestamp)
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值,取决于函数是在一个字符串还是或数字上下文中被使用。

[sql] view plainprint?
mysql> select FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
mysql> select FROM_UNIXTIME(875996580) + 0;
-> 19971004222300

FROM_UNIXTIME(unix_timestamp,format)

返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。

[sql] view plainprint?
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
'%Y %D %M %h:%i:%s %x');
-> '1997 23rd December 03:43:30 x'

通过 UNIX_TIMESTAMP 函数把 MySQL 数据库中的 date 类型数据转换成 unix timestamp 形式的一个整形数字:
[sql] view plainprint?
select UNIX_TIMESTAMP('2006-02-28') testdate;

[sql] view plainprint?
按理说得到的时间戳应该可以直接拿来给 PHP 的 date() 等函数使用。但奇怪的是:

echo date("Y-m-d",$testdate);

显示出来的日期跟数据库实际的日期相比却少了一天,百思不得其解。反复查看 MySQL 关于 UNIX_TIMESTAMP 函数的说明,终于发现问题所在:“The server interprets date as a value in the current time zone and converts it to an internal value in UTC.” 原来 MySQL 的 UNIX_TIMESTAMP 函数得到的时间戳是 UTC 时间,而不是服务器设定的特定 Time zone 的时间。经过这样一转化,时间戳就凭空少了8个小时(对于咱这里来说),而 PHP 中的 timestamp 则计算的都是系统设定时区的当地时间。因此 2006-02-28 这个日期被减去了8个小时,自然变成了2006-02-27。

[sql] view plainprint?
解决方法:把这八个小时加回去(UNIX_TIMESTAMP('2006-02-28' + INTERVAL 8 HOUR));或者弃用 UNIX_TIMESTAMP 函数, 直接得到 MySQL date 字符串之后通过 strtotime() 函数来把字符串转化成真正的本地时间戳。

找出下个月生日的动物也是容易的。假定当前月是4月,那么月值是4,你可以找在5月出生的动物 (5月),方法是:

[sql] view plainprint?
mysql> SELECT name, birth FROM pet WHERE MONTH(birth) = 5;

.................
$conn=mysql_connect("localhost","root","1234")or die("连接数据库失败");
$conndb=mysql_select_db("test",$conn)or die("连接表失败");
$query="select * from ttable";
$result = mysql_query($query,$conn);
while($row = mysql_fetch_array($result)){
$rows[]=$row;
}
$random =rand(0,count($rows));
print_r($rows[$random]);

㈡ 时间戳的数据库中

在一张表上加上时间戳字段,并做索引,可以比较好的得到表写入的顺序,基本上也可以保证唯一性。

㈢ TXT中的时间戳导入到数据库中怎么能在表中显示为时间格式呢

也就是0000-00-00 00:00:00(Y-m-d H:i:s),你不转换当然是默认的0000-00-00 00:00:00,至于怎么转换要看你用什么语言了可以问度娘专 追问: 我是在linux上写的bash脚本把属文本里面的时间戳直接导入到数据库里,现在就是导进去之后显示就有问题,求解决 回答: 我的意思是说,你把时间戳直接导入数据库里面DATETIME格式的列的话数据库是不会自己帮你转换的!在循环里面加个判断转换成需要的格式然后再导入,或者是之前先转换,再直接导入都可以的好像是date -d '1970-01-01 什么的 忘记了转换方法网络上应该有算法的 追问: 噢,你是说在linux里面先转换好然后再导入进去,我研究研究 回答: 嗯 是的 也可以导入的过程中转换 其实就是数据类型的转换,归根到底就是这两个数据之间不支持直接的转换,需要更加复杂的算法

㈣ 数据库中的时间戳怎么理解

把时间t转换成从 1970-01-01 00:00 开始到时间t所经过的秒数。这个数值就是时间t对应的时间戳。
由于是数值方便比较和运算

㈤ 怎么在数据库里记录个时间戳

sqlite的话 直接NSdate类型就可以了 数据库字段类型选date(或者datetime,time。。。具体哪一个 忘了)

㈥ 时间戳可以做数据库记录的主键吗

可以 但是要保证最小单为,毫秒 不然同意秒产生两条数据就不好处理了

㈦ 数据库时间戳格式为什么从1970年开始

在开源领域,很多时间戳都是从1970开始,像 mysql这样的数据库和php,这又称作Unix时间戳,因为在1970年,Unix操作系统正式投入使用。

㈧ 分布式数据库系统中什么叫时间戳时间戳怎么理解

时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。数字时间戳技术是数字签名技术一种变种的应用。
定义
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
分类
1.自建时间戳:此类时间戳是通过时间接收设备(如GPS,CDMA,北斗卫星)来获取时间到时间戳服务器上,并通过时间戳服务器签发时间戳证书。此种时间戳可用来企业内部责任认定,在法庭认证时并不具备法律效力。因其在通过时间接收设备接收时间时存在被篡改的可能,故此不能做为法律依据。
2.具有法律的效力的时间戳:它是由我国中科院国家授时中心与北京联合信任技术服务有限公司负责建设的我国第三方可信时间戳认证服务。由国家授时中心负责时间的授时与守时监测。因其守时监测功能而保障时间戳证书中的时间的准确性和不被篡改。获取时间戳平台有“大众版权保护平台”,可与我国中科院国家授时中心时间同步。

数据库系统中时间戳
数据库中自动生成的唯一二进制数字,与时间和日期无关的, 通常用作给表行加版本戳的机制。存储大小为 8个字节。
每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个 timestamp 列。每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改 timestamp 值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新还将导致索引更新。
使用某一行中的 timestamp 列可以很容易地确定该行中的任何值自上次读取以后是否发生了更改。如果对行进行了更改,就会更新该时间戳值。如果没有对行进行更改,则该时间戳值将与以前读取该行时的时间戳值一致。若要返回数据库的当前时间戳值,请使用 @@DBTS。

在控制并发时起到作用
用户A/B同时打开某条记录开始编辑,保存是可以判断时间戳,因为记录每次被更新时,系统都会自动维护时间戳,所以如果保存时发现取出来的时间戳与数据库中的时间戳如果不相等,说明在这个过程中记录被更新过,这样的话可以防止别人的更新被覆盖。

㈨ 在MySQL数据库里面,怎么使用SQL语句查询功能把时间戳格式格式化为日期格式如:2013-02-28 6:00:00

你没明确说要更新什么字段,只能给你个例子:

update archives set 字段A =5 where from_unixtime(pubdate,'%Y-%m-%d %h:%i:%m')='2012-11-11 00:00:00';

------------------from_unixtime(pubdate,'%Y-%m-%d %h:%i:%m')这个的意思就是把时间戳变专成日期
类似2012-11-11 00:10:10这样的格式

如果说属是要把pubdate字段的内容直接更新成刚才那样的日期格式,int类型的字段是存储不了的

阅读全文

与时间戳在数据库表示相关的资料

热点内容
网贷大数据怎么查询哪个平台逾期 浏览:966
华为hifi现场配置文件提取 浏览:123
如何把苹果手机用数据线导入电脑 浏览:828
c窗体程序连接数据库 浏览:370
飞控科技app怎么下载 浏览:874
为什么编程大佬都不用mac 浏览:636
iphone6官网几天内可以换货 浏览:872
空文件夹没了 浏览:935
安卓手机锁定2g网络 浏览:430
编程算法核心是什么 浏览:491
海康错误代码153 浏览:326
win10不停开关飞行模式 浏览:21
win10搜索应用程序 浏览:971
cdr2020免登录补丁是哪个文件夹 浏览:951
电脑查找重复文件 浏览:733
js转换浮点小数 浏览:445
生成网卡配置文件命令 浏览:963
07word工具 浏览:828
安卓哪里看1080 浏览:893
手机浏览器保存的网站如何恢复 浏览:330

友情链接