问题描述
出于个人原因,我需要从视图创建表。所以我这样创建表
sub BuildUnbalancedTree {
my $this = shift;
foreach my $key (@{$this->{'unordered_list'}}){
my $newnode = $this->NewNode($key);
$this->Insert(\$this->{root},$newnode);
}
}
然后我要像这样插入我的值:
drop table if exists ef_vues_venues_clients;
CREATE TABLE ef_vues_venues_clients (
client_id integer primary key,annee_saison integer,semaine integer,periode char(2),saison varchar(10),date_venue date,station varchar(10)
);
insert into ef_vues_venues_clients(
client_id,annee_saison,semaine,periode,saison,date_venue,station)
select client_id,if(date_venue='',NULL,str_to_date(date_venue,'%Y-%m-%d')),station
from ef_venues_clients;
为确保它不是来自我的数据,我尝试仅插入这样的一行:
Error Code: 1292. Incorrect datetime value: '13'
但同样的错误。
选择的结果是这样:
insert into ef_vues_venues_clients(
client_id,station
from ef_venues_clients
order by date_venue desc LIMIT 1;
这里没有'13',所以我不明白...
你能帮我吗?
谢谢。
解决方法
顾名思义,日期时间应为“%Y-%m-%d%H:%m:%s”格式。 那么您可以尝试'%Y-%m-%d 00:00:00'
,我认为问题在于您的date_venue变量已经是DATE类型。 INSERT语句似乎正常工作。 str_to_date尝试转换DATE变量,但需要VARCHAR变量。我会尝试省略str_to_date函数:
if(date_venue='',NULL,date_venue),