时间戳汇总
时间:2010-11-29 来源:jennyljd
以下类容来自网络
-----------------------------------------------------------------------------------
Oracle Database 9i数据库引入了一种新特性,可以存储时间戳,时间戳可以存储世纪,4位年,月,日,时(以24小时格式),分,秒.与DATE类型相比,具有可以存储秒的小数位,可以存储时区等优点.
下面介绍时间戳类型:
TIMESTAMP[(seconds_precision)]存储世纪、4位的年、月、日、时(以24小时格式)、分和秒。seconds_precision为可选参数,用于指定精度,该参数为一个整数,范围从0~9,默认值为9;意思是表示秒的数字的小数点右边可以存储9位数字。如果试图在秒的小数中保存超过TIMESTAMP存储精度的数字,那么该小数将被取整
TIMESTAMP[(seconds_precision)]WITH TIME ZONE扩展TIMESTAMP,用于存储时区
TIMESTAMP[(seconds_precision)]WITH LOCAL TIME ZONE扩展TIMESTAMP,将给定的时间值转换成数据库的本地时区。转换过程称为时间值的规格化 ----------------------------------------------------------------------------------- 如何给导入文件加上时间戳标记: 1.可以在DOS下从系统获得时间戳 利用Dos命令取得时间戳: C:>echo %date% 2006-04-24 星期一 C:>echo %date:~0,10% 2006-04-24 接下来使用导出(exp)工具引用该时间戳就很容易了: exp userid=eygle/eygle file=d:eygle%date:~0,10%.dmp log=d:eygle%date:~0,10%.log 2.使用sql脚本从数据库获得时间戳 也可以使用如下的SQL方式获得时间戳. 首先编写一个doexp.sql脚本: column today new_val dt select to_char( sysdate, 'ddmmyyyy' ) today from dual; host exp userid=eygle/eygle tables=emp file=exp_prod_&dt..exp log=exp_prod_&dt..log exit 再编写一个start.bat批处理脚本调用doexp.sql脚本: echo off set Oracle_sid=eygle sqlplus eygle/eygle @doexp 执行结果如下: E:ItpubItpubTrainExp2>dir 驱动器 E 中的卷是 SWAPDK 卷的序列号是 F8BA-FCAC E:ItpubItpubTrainExp2 的目录 2003-10-07 15:14 .
2003-10-07 15:14 ..
2003-08-26 15:18 170 doexp.sql 2003-10-07 15:12 4,096 exp_prod_07102003.exp 2003-10-07 15:12 335 exp_prod_07102003.log 2003-08-26 15:18 4,096 exp_prod_26082003.exp 2003-08-26 15:18 312 exp_prod_26082003.log 2003-10-07 15:42 4,096 exp_prod_30082003.exp 2003-08-30 17:09 335 exp_prod_30082003.log 2003-10-07 15:14 1,660 sqlnet.log 2003-10-07 15:12 60 start.bat 9 个文件 15,160 字节 2 个目录 674,652,160 可用字节
----------------------------------------------------------------------------------- 考虑以下的 makefile :
=== makefile 开始 ===
myprog : foo.o bar.o
gcc foo.o bar.o -o myprog
foo.o : foo.c foo.h bar.h
gcc -c foo.c -o foo.o
bar.o : bar.c bar.h
gcc -c bar.c -o bar.o
=== makefile 结束 ===
这是一个非常基本的 makefile —— make 从最上面开始,把上 面第一个目的, ‘myprog’,做为它的主要目标(一个它需要保 证其总是最新的最终目标)。给出的 规则说明只要文件‘myprog’ 比文件‘foo.o’或‘bar.o’中的任何一个旧,下一行的命令将 会被执行。但是,在检查文件 foo.o 和 bar.o 的时间戳之前,它会往下查 找那些把 foo.o 或 bar.o 做为目标文件的规则。它找到的关于 foo.o 的规则,该文件的依靠文件是 foo.c, foo.h 和 bar.h 。 它从下面再找不到生成这些依靠文件的规则,它就开始检 查磁碟 上这些依靠文件的时间戳。如果这些文件中任何一个的时间戳比 foo.o 的新, 命令 'gcc -o foo.o foo.c' 将会执行,从而更新 文件 foo.o 。 接下来对文件 bar.o 做类似的检查,依靠文件在这里是文件 bar.c 和 bar.h 。 现在, make 回到‘myprog’的规则。如果刚才两个规则中的任 何一个被执行, myprog 就需要重建(因为其中一个 .o 档就会比 ‘myprog’新),因此连接命令将被 执行。
希望到此,你可以看出使用 make 工具来建立程序的好处——前 一章中所有繁琐的检 查步骤都由 make 替你做了:检查时间戳。 你的源码文件里一个简单改变都会造成那 个文件被重新编译(因 为 .o 文件依靠 .c 文件),进而可执行文件被重新连接(因 为 .o 文件被改变了)。其实真正的得益是在当你改变一个 header 档的时候——你不 再需要记住那个源码文件依靠它,因为所有的 资料都在 makefile 里。 make 会很轻 松的替你重新编译所有那 些因依靠这个 header 文件而改变了的源码文件,如有需 要,再 进行重新连接。 当然,你要确定你在 makefile 中所写的规则是正确无误的,只 列出那些在源码文件 中被 #include 的 header 档……
下面介绍时间戳类型:
TIMESTAMP[(seconds_precision)]存储世纪、4位的年、月、日、时(以24小时格式)、分和秒。seconds_precision为可选参数,用于指定精度,该参数为一个整数,范围从0~9,默认值为9;意思是表示秒的数字的小数点右边可以存储9位数字。如果试图在秒的小数中保存超过TIMESTAMP存储精度的数字,那么该小数将被取整
TIMESTAMP[(seconds_precision)]WITH TIME ZONE扩展TIMESTAMP,用于存储时区
TIMESTAMP[(seconds_precision)]WITH LOCAL TIME ZONE扩展TIMESTAMP,将给定的时间值转换成数据库的本地时区。转换过程称为时间值的规格化 ----------------------------------------------------------------------------------- 如何给导入文件加上时间戳标记: 1.可以在DOS下从系统获得时间戳 利用Dos命令取得时间戳: C:>echo %date% 2006-04-24 星期一 C:>echo %date:~0,10% 2006-04-24 接下来使用导出(exp)工具引用该时间戳就很容易了: exp userid=eygle/eygle file=d:eygle%date:~0,10%.dmp log=d:eygle%date:~0,10%.log 2.使用sql脚本从数据库获得时间戳 也可以使用如下的SQL方式获得时间戳. 首先编写一个doexp.sql脚本: column today new_val dt select to_char( sysdate, 'ddmmyyyy' ) today from dual; host exp userid=eygle/eygle tables=emp file=exp_prod_&dt..exp log=exp_prod_&dt..log exit 再编写一个start.bat批处理脚本调用doexp.sql脚本: echo off set Oracle_sid=eygle sqlplus eygle/eygle @doexp 执行结果如下: E:ItpubItpubTrainExp2>dir 驱动器 E 中的卷是 SWAPDK 卷的序列号是 F8BA-FCAC E:ItpubItpubTrainExp2 的目录 2003-10-07 15:14 .
2003-10-07 15:14 ..
2003-08-26 15:18 170 doexp.sql 2003-10-07 15:12 4,096 exp_prod_07102003.exp 2003-10-07 15:12 335 exp_prod_07102003.log 2003-08-26 15:18 4,096 exp_prod_26082003.exp 2003-08-26 15:18 312 exp_prod_26082003.log 2003-10-07 15:42 4,096 exp_prod_30082003.exp 2003-08-30 17:09 335 exp_prod_30082003.log 2003-10-07 15:14 1,660 sqlnet.log 2003-10-07 15:12 60 start.bat 9 个文件 15,160 字节 2 个目录 674,652,160 可用字节
----------------------------------------------------------------------------------- 考虑以下的 makefile :
=== makefile 开始 ===
myprog : foo.o bar.o
gcc foo.o bar.o -o myprog
foo.o : foo.c foo.h bar.h
gcc -c foo.c -o foo.o
bar.o : bar.c bar.h
gcc -c bar.c -o bar.o
=== makefile 结束 ===
这是一个非常基本的 makefile —— make 从最上面开始,把上 面第一个目的, ‘myprog’,做为它的主要目标(一个它需要保 证其总是最新的最终目标)。给出的 规则说明只要文件‘myprog’ 比文件‘foo.o’或‘bar.o’中的任何一个旧,下一行的命令将 会被执行。但是,在检查文件 foo.o 和 bar.o 的时间戳之前,它会往下查 找那些把 foo.o 或 bar.o 做为目标文件的规则。它找到的关于 foo.o 的规则,该文件的依靠文件是 foo.c, foo.h 和 bar.h 。 它从下面再找不到生成这些依靠文件的规则,它就开始检 查磁碟 上这些依靠文件的时间戳。如果这些文件中任何一个的时间戳比 foo.o 的新, 命令 'gcc -o foo.o foo.c' 将会执行,从而更新 文件 foo.o 。 接下来对文件 bar.o 做类似的检查,依靠文件在这里是文件 bar.c 和 bar.h 。 现在, make 回到‘myprog’的规则。如果刚才两个规则中的任 何一个被执行, myprog 就需要重建(因为其中一个 .o 档就会比 ‘myprog’新),因此连接命令将被 执行。
希望到此,你可以看出使用 make 工具来建立程序的好处——前 一章中所有繁琐的检 查步骤都由 make 替你做了:检查时间戳。 你的源码文件里一个简单改变都会造成那 个文件被重新编译(因 为 .o 文件依靠 .c 文件),进而可执行文件被重新连接(因 为 .o 文件被改变了)。其实真正的得益是在当你改变一个 header 档的时候——你不 再需要记住那个源码文件依靠它,因为所有的 资料都在 makefile 里。 make 会很轻 松的替你重新编译所有那 些因依靠这个 header 文件而改变了的源码文件,如有需 要,再 进行重新连接。 当然,你要确定你在 makefile 中所写的规则是正确无误的,只 列出那些在源码文件 中被 #include 的 header 档……
相关阅读 更多 +