草庐IT

insert_date

全部标签

MySQL STR_TO_DATE NULL 出错

我目前正在将一个包含VARCHAR列的日期的表迁移到一个包含DATE列的新表。我设法将旧表中的字符串值清理为"YYYY-MM-DD"格式,但是当我尝试执行插入时,我收到了错误,日期为"2006-04-31"因为那个四月只有30天(注册时打错了),我的问题是:当日期无效时如何将列设置为NULL而不会出现错误?我的SQL如下:INSERTINTOnewFancyTable(created_at)SELECTstr_to_date(created,'%Y-%m-%d')FROMoldCrappyTable;错误如下:ErrorCode:1292.Incorrectdatevalue:'200

php - 大型 MySQL INSERT 语句导致 PHP 错误

好吧,我正在制作我的代码,但发生了一些奇怪的事情,我不认为我的代码有错......但它仍然死了我不知道为什么.......出现错误:Error:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'release,media_img,media_video,req)VALUES('games_2','GTAIV','aa','PC,Xb'atline1还有查询:INSERTINTOgamedata(item_id,name

MySQL INSERT INTO ... SELECT 或默认值

我正在处理以下查询:INSERTINTOa(id,value)VALUES(_id,(SELECTvalueFROMbWHEREb.id=_id));表a:id、value(有默认值)表b:id,值表b不包含所有请求的值。所以SELECT查询有时会返回0行。在这种情况下,它应该使用a.value的默认值。这有可能吗?编辑:标记为已解决的帖子评论中出现空栏的解决方法。 最佳答案 您可以将值包装在coalesce(max(value),default_value)INSERTINTOa(id,value)VALUES(_id,(SELE

mysql - DATE_ADD 和 INTERVAL 函数中的语法错误

鉴于此功能:DROPFUNCTIONIFEXISTSexpiration_date;DELIMITER$$CREATEFUNCTIONexpiration_date(lic_classVARCHAR(2),born_onDATE,atDATE)RETURNSDATEBEGINDECLAREageINTEGER;DECLAREspanINTEGERDEFAULT0;SETage=YEAR(at)-YEAR(born_on);IFage=50ANDage=70ANDage=80THENSETspan=2;ENDIF;DECLAREretDATE;SETret=DATE_ADD(at,INT

python - SQLAlchemy,scoped_session - 原始 SQL INSERT 不写入数据库

我有一个Pyramid/SQLAlchemy、MySQLpython应用程序。当我执行原始SQLINSERT查询时,没有任何内容写入数据库。然而,当使用ORM时,我可以写入数据库。我阅读了文档,阅读了有关ZopeTransactionExtension的信息,阅读了大量SO问题,但都无济于事。到目前为止还没有奏效的地方:transaction.commit()-没有任何内容写入数据库。我确实意识到这个声明对于ZopeTransactionExtension是必要的,但它在这里并没有发挥作用。dbsession().commit-因为我使用的是ZopeTransactionExtensi

mysql错误: 1292 Incorrect datetime value showing a date that doesn't exist

此存储过程出现错误:DELIMITER$$CREATEDEFINER=`root`@`localhost`PROCEDURE`populateTimeTable`(INtable_nameVARCHAR(45),INstart_dateDATE,INend_dateDATE)BEGINDECLAREfull_dateDATE;SET@query_create=CONCAT('CREATETABLEIFNOTEXISTS',table_name,'(idDateINT(8)UNSIGNEDNOTNULL,dateDATENOTNULL,yearSMALLINT(4)UNSIGNEDNOT

MySQL 查询 : Is there a better way to get users who are X years old or older based on birth_date date field

我目前将用户的出生日期存储为DATE字段,默认值为0000-00-00。例如,我使用此查询来获取30岁或以上的用户。SELECT*FROMmyUsersWHEREbirth_date!='0000-00-00'ANDDATE(birth_date)这是获得我想要的结果的正确sql查询吗?(获取年龄大于或刚好30岁的用户)它是否可以改进/优化? 最佳答案 它并不总是错误的,但我不喜欢用0000-00-00存储日期作为默认值,请使用NULL代替(除非它有特殊含义,并且您必须将其与NULL区分开来)。那么你正在使用DATE()函数从日期时

php - Codeigniter 将部分 CSV 数据插入 MYSQL 只有 id 和 date

您好,我正在尝试通过上传CSV将数据插入mysql表。但我收到一个错误。上传显示错误并仅插入ID和日期。我不知道可能的原因。首先,我将用户表从MYSQL导出为csv格式。现在我使用我的代码上传相同但不起作用下面是我的代码:我做了Print_r($file_data);所以得到这个Array([file_name]=>users_(2)3.csv[file_type]=>text/plain[file_path]=>/var/www/Test/uploads/[full_path]=>/var/www/Test/uploads/users_(2)3.csv[raw_name]=>user

mysql - INSERT INTO table DEFAULT(key_col) 插入零?

我在tbl中有这个主键列:`id`INT(5)unsignedNOTNULLAUTO_INCREMENTPRIMARYKEY当我运行下面的查询时,插入零而不是下一个自动递增数字:INSERTINTO`tbl`(id,col1,...)VALUES(DEFAULT(id),"value1",...)有趣的是,这种行为是最近发生的,让我想知道我可能更改了哪些设置会导致这种情况。我首先考虑的是NO_AUTO_VALUE_ON_ZERO。我已将其添加到配置文件中的sql_mode,现在是这样的:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLE

mysql - python mysql insert syntax error 当只有一个变量

我正在使用Python2,如果这对这个问题很重要的话。我正在玩mysql.connector作为学习练习,并构建了一些工作插入,然后遇到了一个奇怪的(对我来说)问题——我确定我做错了一些简单的事情。我正在为几个表格插入两列,类似于下面的第一个示例;当我遇到只插入一列的情况时,出现语法错误。为什么像这样的语法可以正常工作的任何想法:query_publisher="INSERTINTOpublisher(name,name2)"\"VALUES(%s,%s)"\"ONDUPLICATEKEYUPDATEPUBLISHER_ID=LAST_INSERT_ID(PUBLISHER_ID)"a