sql - postgresql 中的默认日期不为空
问题描述
我想创建一个新表,下面的代码;
create table dwh.dim_produk (
sk_produk serial primary key,
kode_produk varchar(25),
nama_produk varchar(50),
kode_kategori varchar(50),
nama_kategori varchar(50),
date_from date not null default current_timestamp,
date_to date not null default '12/31/9999');
但我得到的结果是;
SQL Error [22008]: ERROR: date/time field value out of range: "12/31/9999"
Hint: Perhaps you need a different "datestyle" setting.
Position: 253
预先感谢
解决方案
如果您想要一个“未来”的日期,请使用infinity
date_from date not null default current_date,
date_to date not null default 'infinity'
或者,如果您真的想要 9999 年的日期,请使用使用 ANSI 样式格式化的正确 DATE 文字:
date_from date not null default current_date,
date_to date not null default DATE '9999-12-31'
daterange
或者,您可以使用数据类型表示范围:
valid_during daterange not null default daterange(current_date,null)
null
上限的 A也意味着“无穷大”。
推荐阅读
- angular - Angular Material UI Dialog 为弹出对话框提供数据
- java - 同步和异步如何同时工作
- javascript - 列表孩子没有正确更新?(反应/预演)
- security - 此页面的部分内容不安全
- php - Nginx '未指定输入文件。' 使用 php71 的 laravel 项目出错
- list - 来自局部变量的 rnd
- python - 在同一图 Matplotlib 上绘制时间序列和累积和
- python - Python pandas 解析 html 表以获取隐藏的值和链接
- vba - 将 VBA 宏应用于 Visio 中的不同页面
- excel - 合并工作簿 - 获取其他值并将它们添加到 C 列