回 帖 发 新 帖 刷新版面

主题:[讨论]日期时间数据类型及其应用的问题

日期时间是我在程序学习和设计中遇到的最麻烦的问题。由于日期时间的存储和程序应用时需要的格式不同,因此经常需要对其进行转换。
而不同的数据库和程序语言往往有不同的日期时间函数,给程序设计带来了很多麻烦。因此想与各位朋友讨论讨论不同数据库和程序语言有关日期时间的问题。

以下是 ORACLE 数据库 PL/SQL 中有关日期时间的函数。

ORACLE 数据库中日期时间的数据类型是 DateTime。 可转换成浮点数,整数为日期(天数),小数部分时间。日期时间的数据可进行加减运算。加1代表第二天。

返回但前日期时间的函数是 sysdate, 转换数据类型的函数是 to_char. 

select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') "Now" from dual;

Now
-------------------
2006-12-09 13:12:01
 
函数 LAST_DAY(d) 返回日期 d 所在月的最后一天的日期。
函数 ADD_MONTHS(d,n) 日期 d 加 n 个月的日期。
 
欢迎各位参与讨论,并能给出其他数据库和程序语言有关日期时间的例子。

回复列表 (共2个回复)

沙发

MS SQL 数据库中日期时间的数据类型也是 DateTime。返回但前日期时间的函数是 getdate(), 转换数据类型的函数是 convert. 

sselect convert(varchar(20),getdate(),120) as Time_in_ODBC_Format

Time_in_ODBC_Format  
-------------------- 
2007-10-21 12:10:43

 
函数 Year(d),Month(d),day(d) 分别返回日期 d 的 年,月,日。
函数 DATEDIFF (datepart,startdate,enddate) 返回日期时间差。 
函数 DATEADD(datepart,number,d) 用于改变日期 d, datepart是日期改变的单位。

例如显示当前时间和两小时前的时间:
select getdate() as now, dateadd(hh,-2,getdate()) as two_hour_eraly

now                      two_hour_eraly                         
------------------------ ------------------------- 
2007-10-21 12:24:39.310  2007-10-21 10:24:39.310



板凳

[em2]不错,很多初学者都会遇到这种问题,顶一个!

我来回复

您尚未登录,请登录后再回复。点此登录或注册