我的Laravel网络应用程序使用schema builder进行数据库可移植性,因此MySQL-specific YEAR column type不可用。
我希望能够按年度排序和选择数据行(包括BETWEEN
)。什么是存储年份值的最佳便携式列类型?
答案 0 :(得分:5)
用于存储年份值的最佳便携式列类型是什么?
smallint
是表示年份的好选择,它是ANSI SQL,因此可以在大多数数据库中使用。它将持续到32767年。
某些数据库支持create domain
,它基本上允许您创建自己的类型。您可以为其他数据库创建year
域。尽管如此,我更喜欢smallint的简单性。
答案 1 :(得分:1)
你可以这样做:
>>(n, m)
答案 2 :(得分:1)
我认为这应该有效:
public function up()
{
Schema::create('mytable', function(Blueprint $table)
{
$table->increments('id');
// columns
$table->timestamps();
});
DB::statement('ALTER mytable ADD year YEAR' );
}
如果Laravel在即将推出的版本中提供了访问此方法的任何方法(在Schema::table('tablea_name', function(Blueprint $table)
{
DB::statement('ALTER TABLE table_name ADD year YEAR(4);');
});
中),便携式解决方案将会出现:
/vendor/laravel/framework/src/Illuminate/Database/Schema/Blueprint.php
答案 3 :(得分:0)
与Laravel 5.8一样,您可以执行以下操作:
$table->year('birth_year');