数据库设计中许多表都需要时间类型(datetime),掌握和理解一些时间类型的应用技巧,可以降低编程的难度,提高编程的可靠性。
对于时间类型的插入,有许多不同的方法。
例一
在前台实现时间类型的插入
java.sql.Date sql_today = new java.sql.Date(newjava.util.Date().getTime());
通过一系列的转换,生成一个可以插入到sql server中区的时间类型。
例二
在存储过程中实现时间的插入
declare @today datetime
set @today = getdate() (系统日期函数)
insert into tableName(time) values(@today)
这样插入的好处是前台无需处理时间类型,从而简化编程难度。
例三
有一种最简单的方法
利用datetime的默认值,将其设置为(getDate())就可以在插入一条新数据时,数据库自动帮你填入今天的时间。
时间类型(datetime)的比较
在存储过程中声明一个时间类型变量
daclare @today datetime --声明局部变量
1)set @today='2010-01-20' --为局部变量赋值;有两种赋值方法。
2)select @today=time from 表名
select * from tableName
where date=@today --date类型datetime,使用赋值后的变量
这样的比较时不可靠的
因为默认情况下datetime的表现形式为'2010-01-20 9:40 ’
如果直接比较date=@today,数据库会认为它们不相等,返回为空;
可靠的比较方式为:
daclare @today datetime
set @today='2010-01-20'
select * from tableName
where year(date)=year(@today) and month(date)=month(@today) and
day(date)=day(@today)。