导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2004/4/22 14:51:17
标题:
加入我的收藏
楼主:
Delphi+SQL Server2000 论坛上有一位朋友告诉我,记录的录入时间可以使用服务器的时间,方法是:新建一datetime字段,默认值设为:getdate(). 问题:1,在DBGrrid中显示是:如:2002-4-14 9:21:05怎样不要后面的时间,只要前面的日期? 2,在按时间查询的时候,<=或=2002-4-14 9:21:05的时候没有查到记录,而>=的时候却能查到记录? 3,我有多条记录都是同一时间录入的如:2004-4-16 9:23:12 但是我用distinct 为何不能筛选出不同的记录? 4,between是不是用在两时间之间,如select * from table where inputtime between 2002-10-21 and 2003-2-15?
----------------------------------------------
-相互学习,共同进步!
作者:
2004/4/22 15:05:31
1楼:
1、用formatdatetime('yy/mm/dd',date)函数可以解决。 2、这个应该可以查到,可能是你的sql语句有问题。 3、你根据日期用distinct选出不同的记录时,你的选出来的其他字段必须也是与日期相对应。譬如你有两条记录:(2004-1-2 ,4)和(2004-1-2,5)如果你用distinct把他们全部选出来的话,就一定有两条记录,如果你只选选日期的话就只有一条记录。
----------------------------------------------
-和大家一起学习,一起进步!!!
作者:
2004/4/22 15:57:40
2楼:
'select * from table where inputtime between 2002-10-21 and 2003-2-15'; ---------------------------------------------- 该语句应该没有问题.可能问题还是出现在日期后面的时间上.从实用角度上讲,这里时间应当去掉。如何去掉: 在界面上用dateTimepicker组件作“输入时间”字段的录入组件,只要在该组件 的object inspector(我称之为属性编辑器)中将其Time属性中时间删除,使其成为00:00:00就可以确保在录入时,它只提供日期,而不出现时间。另外在窗体的OnActivate事件中,加入这样一条代码:datetimepicker.date:=now;就可以确保该组件显示的是与电脑同步的当前日期。不要使用SQL2000中表设计里默认值编辑该字段时间格式。如果你不想让录入员修改录入时间,你只要把dateTimepicker 的使能属性设为假就行,但录入修改电脑的当前时间就没法了,即使你使用SQL2000时间字段默认值也没用。
----------------------------------------------
-
作者:
2004/4/22 16:02:04
3楼:
但是记录的录入时间用的是服务器的时间,(方法是:新建一datetime字段,默认值设为:getdate().)和客户端没有关系.
----------------------------------------------
-相互学习,共同进步!
作者:
2004/4/22 16:10:10
4楼:
那就只能在SQL2000里想办法去掉日期后面的时间,总之你那个SQL语句就是时间在作怪,不信你在SQL语句的日期后面也加上时间试试;如果一定要如此,在设计表中,将日期字段的数据类型改为samlldateTime试试
----------------------------------------------
-
作者:
2004/4/22 16:17:26
5楼:
我想也是这样的,记录的时间不是客户端添加的,是记录生成时自动添加的(也就是记录生成时的时间),所以只能在SQL2000里想办法.
----------------------------------------------
-相互学习,共同进步!
作者:
2004/4/22 17:33:11
6楼:
我改成了samlldateTime还是不行,效果一样还是2004-4-16 9:23:12这种格式的.不知道怎么办?
----------------------------------------------
-相互学习,共同进步!