我创建了一个包含created_time列的表,其默认时间为systimestamp。 当我向其插入一行时,时间显示我的当地时间。 23-02-18 08:49:05.430419000 AM
但是当我从双重查询中选择systimstamp时,它显示的是GMT 23-02-18 05:11:04.225141000 AM +00:00
如何确保默认时间戳也考虑GMT?
CREATE TABLE TS_TEST (
MY_NAME VARCHAR2(100),
created_time TIMESTAMP(6) default CURRENT_TIMESTAMP
);
insert into TS_TEST (MY_NAME) Values ('george');
我希望created_time列应始终为GMT
答案 0 :(得分:3)
检查您的代码,然后您应该看到问题。您说“默认时间为systimestamp ”但您的代码为default CURRENT_TIMESTAMP
SYSTIMESTAMP
与CURRENT_TIMESTAMP
SYSTIMESTAMP
将当前日期/时间作为TIMESTAMP WITH TIME ZONE
返回到数据库服务器操作系统的时区(不是DBTIMEZONE
!)。
CURRENT_TIMESTAMP
将当前日期/时间日期作为TIMESTAMP WITH TIME ZONE
返回当前用户会话时区(可能随时更改)。
LOCALTIMESTAMP
在当前用户会话时区返回当前日期/时间日期TIMESTAMP
(没有时区信息)。
我会推荐这个:
CREATE TABLE TS_TEST (
MY_NAME VARCHAR2(100),
created_time TIMESTAMP(6) default SYS_EXTRACT_UTC(SYSTIMESTAMP)
);
或使用created_time TIMESTAMP(6) WITH TIME ZONE default SYSTIMESTAMP
答案 1 :(得分:0)
class Input extends React.Component {
constructor(props) {
super(props);
this.state = {
value: "hello"
};
}
onFocus = e => {
console.log(e.target.id);
console.log(e.target.selectionStart); // receiving only 0 here
};
onChange = e => {
this.setState({
value: e.target.value
});
};
render() {
return (
<input
id="my-input"
onChange={this.onChange}
value={this.state.value}
onFocus={this.onFocus}
/>
);
}
}