sql - 为什么这个 mysql 表在日期时间字段中产生 NULL?

标签 sql mysql drupal null

我有这张 table 。该表有一堆 char 字段,但相关字段(expiredate)包含 test_tmp 表上的一个 char 和 test 表上的一个日期时间。 (表名称已更改以保护客户端。)

在 test_tmp 表中,该字段包含月份-日期对,例如“Aug 10”或“Feb 20”。我用来插入数据的代码是:

INSERT IGNORE INTO test (RECNUM, ORDERNUM, CREATEDATE, EXPIREDATE, FNAME, LNAME)
  SELECT RECNUM, ORDERNUM, CREATEDATE,
    CAST(CASE WHEN str_to_date(concat(expiredate, ' ', year(now())), '%b %d %Y') <= CURDATE()
    THEN str_to_date(concat(expiredate, ' ', 1+year(now())), '%b %d %Y')
    ELSE str_to_date(concat(expiredate, ' ', year(now())), '%b %d %Y') END AS DATETIME) AS EXPIREDATE, FNAME, LNAME FROM test_tmp

真正令人困惑的是,如果我运行查询的“SELECT”部分,一切看起来都很好。但是如果我运行整个过程(首先截断测试表),则每行在过期日期中都包含 NULL。

最佳答案

遗憾的是我还无法设置评论。这就是为什么我必须把它写在这里。

在 SQL 语句的末尾有一个 ')' 太多了。当您复制/粘贴此代码时,是否可能会剪切更多内容?

关于sql - 为什么这个 mysql 表在日期时间字段中产生 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1051462/

相关文章:

mysql - 选择数据库的最新/最新添加

mysql - Django 中的外键约束错误

mysql - 创建时间大于或等于

sql - 查找所有没有特定列名的表

sql - Oracle-SQL-用子选择插入

mysql - SQL LOAD DATA INFILE 问题

MySQL:我想将数组传递给函数并查看它遍历数组的每个元素

drupal - FieldStorageConfigInterface::getBundles() 返回不存在的配置实体名称:

drupal - 在 Drupal 中将表单插入 block 中?

drupal - 如何在不编码的情况下使用 Drupal 7 进行数据库查询?