请教perl中sql语句里使用变量问题?

请教perl中sql语句里使用变量问题?

类似如下代码

[Copy to clipboard] [ - ]
CODE:
my $dbh = DBI->connect($data_source,$user,$password) or die "Can't connect to $data_source: $DBI::errstr";

my $sth = $dbh->prepare("select a.code,a.jc,a.kp,a.hj,a.lj from table a  where a.jyrq=convert(datetime,'20080717')");
$sth->execute();

如何用变量来表示:20080717

thanks


[Copy to clipboard] [ - ]
CODE:
my $sth = $dbh->prepare("select a.code,a.jc,a.kp,a.hj,a.lj from table a  where a.jyrq=convert(datetime,'".$date."')");

试试


QUOTE:
原帖由 ynchnluiti 于 2008-10-29 11:07 发表
my $sth = $dbh->prepare("select a.code,a.jc,a.kp,a.hj,a.lj from table a  where a.jyrq=convert(datetime,'".$date."')");
试试

非常感谢您的回复!
可是还是不行,编译就过不去。


QUOTE:
原帖由 vepeta 于 2008-10-29 11:18 发表

非常感谢您的回复!
可是还是不行,编译就过不去。

下面的不行吗?

[Copy to clipboard] [ - ]
CODE:
my $date=20080717;
my $sth = $dbh->prepare("select a.code,a.jc,a.kp,a.hj,a.lj from table a  where a.jyrq=convert(datetime,'".$date."')");

另外convert函数用的对吗?


QUOTE:
原帖由 ynchnluiti 于 2008-10-29 12:04 发表


下面的不行吗?
my $date=20080717;
my $sth = $dbh->prepare("select a.code,a.jc,a.kp,a.hj,a.lj from table a  where a.jyrq=convert(datetime,'".$date."')");

另外convert函数用的对吗?

我是这样的。
convert函数直接用没有问题。


QUOTE:
原帖由 vepeta 于 2008-10-29 12:18 发表

我是这样的。
convert函数直接用没有问题。

PS->ynchnluiti
非常抱歉。你第一个回复是正确的  能执行。是我自己错误导致不能编译。thanks
也可以这样处理。

[Copy to clipboard] [ - ]
CODE:
my $dbh = DBI->connect($data_source,$user,$password) or die "Can't connect to $data_source: $DBI::errstr";
my $data = '20080717';

my $sth = $dbh->prepare("select a.code,a.jc,a.kp,a.hj,a.lj from table a  where a.jyrq=convert(datetime,?)");
$sth->execute($date);



QUOTE:
原帖由 vepeta 于 2008-10-29 13:47 发表

PS->ynchnluiti
非常抱歉。你第一个回复是正确的  能执行。是我自己错误导致不能编译。thanks
也可以这样处理。
my $dbh = DBI->connect($data_source,$user,$password) or die "Can't connect to $data_s ...

嗯,双引号中直接使用变量即可
convert(datetime,?)

请问,这里怎么是个问号呢?难道问号就代表了 $date ?
看这里:$sth->execute($date);
我的理解是?在这里用变量$date执行。
?是占位符