【问题标题】:Change column type, Laravel更改列类型,Laravel
【发布时间】:2020-06-22 08:02:33
【问题描述】:

我有一个专栏$table->date('start_date');,我想存储数据和时间,所以我需要timestamp。 我的当前表中已经有一些日期,所以如果不删除现有数据,我不确定该怎么做。

我找到了一些涉及教义的解决方案(关于更改数据类型),但根据我的阅读,支持的 Laravel 版本是 6.x,我使用的是 7。

有什么解决办法吗?

【问题讨论】:

  • 你用的是什么数据库?
  • 我正在使用 PostgreSQL。
  • 您是否使用本地设置尝试/测试过 Laravel 6 示例?
  • 我没有,我的案例涉及该列中的一些现有数据,而不仅仅是修改。
  • 您可以添加一个名为$table->dateTime('new_start_date'); 的新列并迁移它(不刷新)。然后创建一个函数,将日期从start_date 复制到new_start_date,其中时间将是00:00:00 或其他东西。

标签: laravel migration laravel-7


【解决方案1】:

根据 PostgreSQL 文档,您可以使用 to_timestamp() 函数将日期转换为时间戳 https://www.postgresql.org/docs/8.2/functions-formatting.html

你有两个选择:

  • 创建一个新列并创建一个脚本,以正确格式转换所有条目
  • 创建一个脚本,将您需要的所有数据更新到现有表中

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 2016-10-09
    • 2014-12-03
    • 2014-06-30
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多