Oracle的默认日期格式为YYYY-MM-DD.这意味着如果我这样做:
select some_date from some_table
Run Code Online (Sandbox Code Playgroud)
......我失去了约会的时间部分.
是的,我知道你可以用以下方式解决这个问题:
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Run Code Online (Sandbox Code Playgroud)
但说真的,为什么不是上面的默认值?特别是在DBMS中,两个主要时间跟踪数据类型(DATE和TIMESTAMP)都具有包括(至少)精度低至1秒的时间分量.
我在桌子上插入一行时遇到问题.这是insert语句和表创建.这是单一任务的一部分因此简单,我做错了什么?我正在使用oracle SQL开发人员3.0.04版.
我遇到的问题是它只插入dd/mon/yy而不是时间.如何让它插入时间呢?
INSERT INTO WORKON (STAFFNO,CAMPAIGNTITLE,DATETIME,HOURS)
VALUES ('102','Machanic Summer Savings',TO_DATE('22/April/2011 8:30:00AM','DD/MON/YY HH:MI:SSAM'),'3')
;
CREATE TABLE WorkOn
(
StaffNo NCHAR(4),
CampaignTitle VARCHAR(50),
DateTime DATE,
Hours VARCHAR(2)
)
;
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
编辑:这没有任何意义,我只是在现场输入一个时间来测试时间是否正常并输出日期WTF?这真的很奇怪我可能不会使用日期字段而只是输入时间,我意识到这将导致操纵数据的问题,但这没有任何意义......
如何在Oracle中存储日期?例如,我知道大多数系统使用大纪元时间来确定它的时间.通过计算1970年1月1日之后的秒数.甲骨文也这样做了吗?
我问这个的原因是我注意到如果你在Oracle中使用两个日期并减去它们,你会得到一个浮点数,它们介于两者之间.
例
(Sysdate - dateColumn)
Run Code Online (Sandbox Code Playgroud)
会返回这样的东西(取决于时间)
3.32453703703703703703703703703703703704
Run Code Online (Sandbox Code Playgroud)
现在,Oracle正在进行转换和吐出格式化,或者Oracle存储日期与特定时间段之外的天数?(像大纪元一样)
例如使用以下查询:
SELECT first_name, last_name, TO_CHAR(birthday, 'MM/DD/YYYY') as birthday FROM master
Run Code Online (Sandbox Code Playgroud)
有什么方法可以放弃 TO_CHAR 声明并让数据库为我自动转换值吗?我一直试图找到一个动态解决方案,以便它自动转换每个表中 DATE 列中的任何值,但无济于事。
理想情况下,我只想运行以下查询:
SELECT first_name, last_name, birthday FROM master
Run Code Online (Sandbox Code Playgroud)
以所需格式获取所有值。是否也可以反之亦然:
INSERT INTO master (first_name, last_name, birthday)
VALUES (:first_name, :last_name, TO_DATE(:birthday, 'MM/DD/YYYY'))
Run Code Online (Sandbox Code Playgroud)
到:
INSERT INTO master (first_name, last_name, birthday)
VALUES (:first_name, :last_name, :birthday)
Run Code Online (Sandbox Code Playgroud) CUST_TRANS -
Name Null? Type
-------------- ----------------- ------------------
CUSTNO NOT NULL CHAR (2)
TRANSDATE DATE
TRANSAMT NUMBER (6, 2)
CUSTNO TRANSDATE TRANSAMT
------------- ----------------------- -----------------------
11 01-JAN-07 1000
22 01-FEB-07 2000
33 01-MAR-07 3000
Dates are stored in the default date format dd-mm-rr in the CUST_TRANS table.
Which three SQL statements would execute successfully? (Choose three.)
A. SELECT transdate + '10' FROM cust_trans;
B. SELECT * FROM cust_trans WHERE transdate = '01-01-07';
C. SELECT transamt FROM cust_trans WHERE custno > …Run Code Online (Sandbox Code Playgroud) 如何检查oracle表中特定列的日期格式?oracle DATE 数据类型是否能够存储两种格式(美国和欧洲)?如果是的话,有没有办法区分哪个是月份,哪个是日期?