数据表中用到了多个时间量,如数据的输入时间(inputtime), 在数据库中设为了smalldatetime 类型。
程序中每次都获取到当前时间, 然后 存入 数据库中。
程序中要把这个表中的数据显示到dbgrid中,为了让inputtime字段显示成为(2010/2/15)这样的格式,所以adoquery的语句是这样的:select *, convert (varchar(20),declaretime,111 ) from table;然后基于 这次 查询的结果,还会进行 进一步的查询。这样的话,每次查询时的查询语句都需要写的很长,即 :select * from (select *, convert(varchar(20),declaretime,111)from table) 。这里的 通配符 具体会被替换为 好多其他 的字段,然后用到的时间量也还有多个,每个都需要convert 语句,这样的话 查询语句就会写得很长,很麻烦。请问 除了用这种 convert 语句,有没有更容易的 处理 时间的显示的问题的 方法,
程序中每次都获取到当前时间, 然后 存入 数据库中。
程序中要把这个表中的数据显示到dbgrid中,为了让inputtime字段显示成为(2010/2/15)这样的格式,所以adoquery的语句是这样的:select *, convert (varchar(20),declaretime,111 ) from table;然后基于 这次 查询的结果,还会进行 进一步的查询。这样的话,每次查询时的查询语句都需要写的很长,即 :select * from (select *, convert(varchar(20),declaretime,111)from table) 。这里的 通配符 具体会被替换为 好多其他 的字段,然后用到的时间量也还有多个,每个都需要convert 语句,这样的话 查询语句就会写得很长,很麻烦。请问 除了用这种 convert 语句,有没有更容易的 处理 时间的显示的问题的 方法,
1、在数据库的时间段设置成字符串类型,这样你可以使用日期(2011-11-12),也可使用带时间的日期(2011-11-12 AM8:00);
2、获取日期和时间可通过下面方法
var DateS:string;
DateTimetoString(DateS,'yyyy-mm-dd',now); // 仅日期
DateTimetoString(DateS,'yyyy-mm-dd hh:nn:ss',now); // 含时间
3、时期时间转换获取
var C:TDateTime;
C:=StrToDateTime(DateS);
.....
如DevExpress的控件就很好用。