我在工作中遇到过这样的情况,在数据库的titles表中有pubdate (DateTime,8)字段,用来存储时间,格式为yyyy-mm-dd hh:mm:ss,而我查询时是通过yyyy-mm-dd来进行的,这样如果通过select pubdate from titles 语句进行查询将无法得到正确结果,比如我们要查询2004年12月1日的信息,在输入2004-12-01时就不能得到查询结果,而这种查询又不能要求输入具体的hh:mm:ss,为此很头疼。
后来我查到SQL帮助文档后发现,我们可以用convert函数,它可以将一种数据类型的表达式转换为另一种数据类型的表达式.此处我们先将数据库内的datetime类型转换为char类型,由于输入的参数是10位的,所以写成
select convert(varchar (10),pubdate,120)as time1 from titles,这样在查询时数据库得到参数后先自动将数据库内的信息转换为yyyy-mm-dd格式的10位字符,只要与参数相同即可返回查询结果.而convert中的120是指将datetime类型转换为char类型时获得包括世纪位数的4位年份。
问题就解决了。呵呵。谁还有更好的方法,告诉我啊。