sql - 插入日期和时间,但只插入日期
问题描述
我试图在表格中插入日期和时间,但最后只插入日期。这是代码:
create table myDate(date_value Date PRIMARY KEY );
INSERT INTO myDate(date_value ) VALUES (to_date('14/09/2010 18:00','dd/mm/yyyy hh24:mi'));
而且我只在 myDate 表中存储了 14/09/2010。有什么问题(有没有办法在没有时间戳的情况下做到这一点)?
解决方案
我认为值得注意的是,设置会话 NLS 参数的替代方法是显式使用 to_char 函数。我更喜欢to_char 因为它让任何阅读代码的人都毫无疑问。对 NLS 的依赖可能是不确定的,因为它可以设置在不同的级别。此外,如果您没有显式使用 to_char,oracle 仍会在后台调用它,使用 NLS_DATE_FORMAT 的控制设置。
SQL> -- create table
SQL> Create table mytest (dob date);
Table created.
Elapsed: 00:00:00.08
SQL> insert into mytest values (sysdate);
1 row created.
Elapsed: 00:00:00.03
SQL> commit;
Commit complete.
Elapsed: 00:00:00.00
SQL> select dob nls_default,
2 to_char(dob,'dd-mm-yyyy') dob1,
3 to_char(dob,'yyyy-mm-dd') dob2,
4 to_char(dob,'dd-mm-yyyy hh24:mi:ss') dob3
5 from mytest;
NLS_DEFAU DOB1 DOB2 DOB3
--------- ---------- ---------- -------------------
11-DEC-20 11-12-2020 2020-12-11 11-12-2020 11:45:31
1 row selected.
Elapsed: 00:00:00.03
SQL> drop table mytest purge;
Table dropped.
有关该主题的更多信息,请参阅这篇文章。
推荐阅读
- javascript - ESlint Angular - no-unused-vars 命中类型定义
- sql - 如何交替显示两个表中的数据
- wordpress - Wordpress on IIS - Plugins were successfully installed but they don't show
- django - How to run wsgi along the side of the daphne ASGI for django channels
- gpflow - 为什么 HMC 采样器会为需要为正的超参数返回负值?[1.0 之前的旧 GPflow 版本]
- xamarin.forms - Xamarin 表单设计在 iphone 5s 中看起来被压缩了
- regex - 正则表达式仅提取 url 的域和子域
- java - 单元测试失败:java.lang.RuntimeException:android.os.Looper 中的方法 getMainLooper 未模拟
- php - 使用数据库中的信息即时创建子域
- java - 如何过滤数据存储属性是否存在于列表中