上两贴忘记了告诉大家是在access数据库中应用。
问题:
1,将数据库中rq列的值修改为rq所在周的周一的日期。例如:2002-11-24是周四,则把它修改为2002-11-21。
2,将数据库中rq列的值修改为rq所在月的第一天的日期。例如:2002-11-24,则把它修改为2002-11-1。
3,将数据库中rq列的值修改为rq所在年的第一天的日期。例如:2002-11-24,则把它修改为2002-1-1。
开发环境为delphi+ado+access,这些问题要用sql语句来解决,因为数据有3000多条,用adotable会很慢。另附:我自己的想法:
delphi中有一个dayofweek()函数,我想这样做:
update table1 set rq=rq-dayofweek(rq)
但是这个语句delphi不认,:( 明天要交工了,着急上火中
希望大家多费心帮忙。
问题:
1,将数据库中rq列的值修改为rq所在周的周一的日期。例如:2002-11-24是周四,则把它修改为2002-11-21。
2,将数据库中rq列的值修改为rq所在月的第一天的日期。例如:2002-11-24,则把它修改为2002-11-1。
3,将数据库中rq列的值修改为rq所在年的第一天的日期。例如:2002-11-24,则把它修改为2002-1-1。
开发环境为delphi+ado+access,这些问题要用sql语句来解决,因为数据有3000多条,用adotable会很慢。另附:我自己的想法:
delphi中有一个dayofweek()函数,我想这样做:
update table1 set rq=rq-dayofweek(rq)
但是这个语句delphi不认,:( 明天要交工了,着急上火中
希望大家多费心帮忙。
begin
Close;
Sql.Text := 'update table1 set rq=rq-'+IntToStr(dayofweek(rq));
ExecSQL;
end;
真受不了你!!给了你一条那么有效率的SQL Server语句尽然不会用!!
(可能这句话过分了些,但都说了)你只要添加一个TQuery
然后写入那条语句,再ExecSQL!!
它的效率比你的要好个N多倍!!!!
呵呵,昨天晚上我试过了,但是提示dd,dw没有定义,没办法只好自己想办法。
:(
请多指点了。
错误信息:rq没有定义.
Returns an integer representing the specified datepart of the specified date.Syntax
DATEPART ( datepart , date ) Arguments
datepartIs the parameter that specifies the part of the date to return. The table lists dateparts and abbreviations recognized by Microsoft® SQL Server™.Datepart Abbreviations
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
hour hh
minute mi, n
second ss, s
millisecond ms
昨天我忘记说了,我用的是access数据库,所以今天又从新发贴了。
我
我不是故意的阿。而且是因为搞不懂才问阿。
把update table1 set rq=rq-'+IntToStr(dayofweek(RQ));
加到adoquery中,错误信息是:undeclared identifier'rq'
:(
对不起,别生气阿,还等着你帮我呢。
'update table1 set rq = rq - DATEPART(dw, rq)'试试看
就是delphi函数和sql语句结合的问题。
delphi中有一个dayofweek()函数
'update table1 set rq=rq-'+IntToStr(dayofweek(rq));
单引号里面的内容没问题,可是后面的IntToStr(dayofweek(rq));中的rq是表里面的一个列名,可以直接这样引用么?
期待中
我用的是access数据库,datepart(dw, rq)
这样恐怕不行。
先把日期取出来然后再用dayofweek函数算出星期几来
最后再Update回去
officeXP中的帮助比较全
或msdn
2,将数据库中rq列的值修改为rq所在月的第一天的日期。例如:2002-11-24,则把它修改为2002-11-1。format(rq,'yyyy-mm-01')3,将数据库中rq列的值修改为rq所在年的第一天的日期。例如:2002-11-24,则把它修改为2002-1-1。format(rq,'yyyy-01-01')测试通过,别说有问题!