【问题标题】:How to convert date and update a joined table如何转换日期和更新连接表
【发布时间】:2014-03-21 18:33:53
【问题描述】:

我正在尝试根据临时表(通过 csv 导入)中的数据(不断更新)来更新表中的列。临时表中的日期为 VARCHAR(“2/20/2014 10:29:25 AM”格式),我要更新的表中的日期为 DATETIME 类型。

我不确定如何正确连接这两个表,以根据临时表中显示的当前日期更新永久表中的日期...使用 product_sku(在两个表中)作为连接字段。

这是我尝试过的,但不断收到 SQL 错误('#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'FROM.. .)

Update t0 
set t0.product_available_date = 
               (SELECT STR_TO_DATE( `t1.product_available_date`,
                                    '%c/%e/%Y %H:%i' ))
                FROM cpg5443_virtuemart_products as t0 
                join cpg5443_virtuemart_products_temp as t1
                on t0.product_sku = t1.product_sku
                Where t0.product_sku='002-765-AS'

您是否发现任何明显的错误,您能告诉我如何改正吗?最后,我希望 where 语句说“where t0.product_sku=t1.product_sku”,希望这会根据临时表中的日期更新每条记录的此列。目前,我只是用一个 product_sku 测试更新。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    看起来您在“002-765-AS”之后缺少括号。你把所有的代码都贴出来了吗?日期格式后还有一个额外的括号。

    试试这个:

    update cpg5443_virtuemart_products as t0
    inner join cpg5443_virtuemart_products_temp t1 
    on t0.product_sku = t1.product_sku
    set t0.product_available_date = str_to_date (t1.product_available_date, 
                                                  '%c/%e/%Y %H:%i:%s')
    where t0.product_sku = '002-765-AS'
    

    【讨论】:

    • 我认为仍然缺少某些东西(我现在收到错误消息“#1146 - Table[account_dbname].t0 不存在”。是的,我已经发布了我拥有的所有代码试过了。我需要子“选择”吗?知道我缺少什么吗?
    • 嗯,错误是说该表不存在。确保您在正确的数据库中运行查询,即此表 t0 所在的位置。
    • 是的,该表存在。是的,我在正确的数据库中运行它。 t0 是 cpg5443_virtuemart_products。我相信我的更新逻辑有问题。
    • 让我试着更好地解释我想要做什么。我有 2 个表,每个表有 3 列(都同名)。 product_sku、product_in_stock 和 product_available_date。临时表中的唯一区别是日期是 varchar(“2/20/2014 10:29:25 AM”格式)。当匹配两个表中的“product_sku”字段时,我想用临时表中存在的库存和日期更新永久表。我是否尝试正确执行此操作?
    • 那只是为了在一条记录上测试此更新。既然我知道逻辑有效,我不想将此更新限制为一条记录。现在我想删除该要求并更新临时表中匹配的所有记录。如果我的理解正确,我会简单地删除“where”子句,对吧?
    猜你喜欢
    • 2016-08-15
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多