创建个触发器就可以了。
测试脚本如下:
1、创建测试表GetSysDate_Test:
create table GetSysDate_Test(t_id number,t_date date);
2、编写触发器trg_test:
create or replace trigger trg_test
before insert on GetSysDate_Test
for each row
when (newt_date is null)
declare
begin
select sysdate into :newt_date from dual;
end trg_test;
3、插入一条数据看效果:
insert into GetSysDate_Test(t_id)values(1);
commit;
select from GetSysDate_Test;
mysql数据库的日期字段类型建议为varchar或者char,存入时间戳。
取出的时候,将时间戳转换为你需要的时间格式就好。
例:
假设取出值为$time
echo date('Y-m-d H:i:s',$time);
你就会看到:2011-11-23 17:42:43的时间格式
直接使用的 int 好,毕竟时间戳可以用FROM_UNIXTIME等时间函数转换成时间格式, int 比datetime计算和比较简单一点,还有是就是感觉数据量大度的话int应该比datetime更快一点。
公司数据库大牛知,建的道所有的数据表关于时间的都是intint比datetime计算简单,数据量大的话int比datetime储存速度更快一点。
时间戳,一个完整的、可验证的数据块,它表示在特定时间之前存在的一段数据,通常是一个字符序列,标识某个时刻的时间。
利用数字签名技术生成下一代数据,签名对象包括原始文件信息、签名参数、签名时间等信息。广泛应用于,知识产权保护、合同签订、财务核算、电子报价投标、股票交易等领域。
扩展资料:
有两种类型的时间戳:
1自建时间戳:这种时间戳是获取时间接收设备到时间戳服务器的时间戳,并通过时间戳服务器发出时间戳证书。该时间戳可用于企业内部责任的确定,经法院证明不具有法律效力。它不能作为一个法律基础,因为它很可能被篡改时,接收设备收到的时间。
2具有法律效力的时间戳:是由中国科学院国家时间中心和北京联合信托技术服务有限公司共同打造的中国第三方可信时间戳认证服务。国家计时中心负责计时和准时监控。
很简单,因为 b的类型不是bigint 而是numeric(10,0) 也就是说,convert(timestamp,3867022616) =convert(timestamp,convert(numeric(10,0),3867022616))
sql server 规则无论你INT有多长,不超过38位,只要超过int的长度就会变成numeric。所以不会变成bigint,而timestamp是根据类型来的。不同数据类型就算值一样,转换成的时间戳就不一样,如果你想规避这个问题,你b就要改成select convert(timestamp,convert(bigint,3867022616)) b
稳妥的办法,
表不大的话,百万行以内,先建立一张表加table_bak将数据原封不动的倒过去
然后修改原来的表新建一个datetime字段
然后
UPDATE 表 set 新建的datetime字段= FROM_UNIXTIME('原来的时间字段') where id="指定一个ID";
先实验下,没问题把where条件去掉
然后你新的字段不就是datetime字段了么
这个时候alert下表,吧新字段改成旧字段的名字,就字段加个_bak什么的 不就完成了么
如果中途有错误,你还有备份
from_unixtime()是MySQL里的时间函数
select uid,userid,username,email,FROM_UNIXTIME(addtime,'%Y年%m月%d') from members
以上例子是sql语句的例子,直接能将mysql的时间戳类型转换成日期格式
date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串
后面的 '%Y%m%d' 主要是将返回值格式化 (这里的时间格式可以动态定义)
例如:
mysql>SELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' )
->20071120
mysql>SELECT FROM_UNIXTIME( 1249488000, '%Y年%m月%d' )
->2007年11月20
UNIX_TIMESTAMP()是与之相对正好相反的时间函数,将日期时间转换为时间戳类型
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
若无参数调用,则返回一个 Unix timestamp ('1970-01-01 00:00:00' GMT 之后的秒数) 作为无符号整数。若用date 来调用 UNIX_TIMESTAMP(),它会将参数值以'1970-01-01 00:00:00' GMT后的秒数的形式返回。date 可以是一个 DATE 字符串、一个 DATETIME字符串、一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYMMDD格式的数字。
例如:
mysql> SELECT UNIX_TIMESTAMP() ; (执行使得时间:2009-08-06 10:10:40)
->1249524739
mysql> SELECT UNIX_TIMESTAMP('2009-08-06') ;
->1249488000
使用 FROM_UNIXTIME函数,具体如下: FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。 根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec) %j 一年中的天数(001……366) %H 小时(00……23) %k 小时(0……23) %h 小时(01……12) %I 小时(01……12) %l 小时(1……12) %i 分钟, 数字(00……59) %r 时间,12 小时(hh:mm:ss [AP]M) %T 时间,24 小时(hh:mm:ss) %S 秒(00……59) %s 秒(00……59) %p AM或PM %w 一个星期中的天数(0=Sunday ……6=Saturday ) %U 星期(0……52), 这里星期天是星期的第一天 %u 星期(0……52), 这里星期一是星期的第一天 %% 一个文字“%”。
以上就是关于oracle数据库表中如何设置时间戳全部的内容,包括:oracle数据库表中如何设置时间戳、用Thinkphp,时间戳转换成正常时间格式(Y年m月),MYSQL数据库的日期字段类型是什么、mysql 把时间换成时间戳进行存储在int字段中还是直接用datetime好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)