MySQL에서 현재 날짜와 시간을 얻는 방법
수동 쿼리에서 현재 날짜와 시간을 삽입하기 위해 사용할 수 있는 DATETIME과 같은 값이나 명령이 있습니까?
INSERT INTO servers (
server_name, online_status, exchange, disk_space, network_shares
) VALUES(
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 'DATETIME'
)
마지막에 따옴표로 묶인 DATETIME 값은 현재 날짜와 시간을 추가하는 위치입니다.
사용할 수 있습니다.NOW()
:
INSERT INTO servers (server_name, online_status, exchange, disk_space, network_shares, c_time)
VALUES('m1', 'ONLINE', 'exchange', 'disk_space', 'network_shares', NOW())
CURRENT_TIMESTamp() 또는 now() 사용
맘에 들다
INSERT INTO servers (server_name, online_status, exchange, disk_space,
network_shares,date_time) VALUES('m1','ONLINE','ONLINE','100GB','ONLINE',now() )
또는
INSERT INTO servers (server_name, online_status, exchange, disk_space,
network_shares,date_time) VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE'
,CURRENT_TIMESTAMP() )
date_time을 시간 삽입에 사용할 열 이름으로 바꿉니다.
많은 답변이 있습니다만, 이 방법도 가능하다고 생각합니다.
다음과 같이 '서버' 테이블을 만듭니다.
CREATE TABLE `servers`
(
id int(11) NOT NULL PRIMARY KEY auto_increment,
server_name varchar(45) NOT NULL,
online_status varchar(45) NOT NULL,
_exchange varchar(45) NOT NULL,
disk_space varchar(45) NOT NULL,
network_shares varchar(45) NOT NULL,
date_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
);
INSERT 스테이트먼트는 다음과 같습니다.
INSERT INTO servers (server_name, online_status, _exchange, disk_space, network_shares)
VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE');
내 환경:
4GB RAM을 탑재한 Core i3 Windows Laptop에서 위의 예를 MySQL Workbench 6.2 (버전 6.2.5.0 빌드 397 64비트)에서 실행하였습니다.
네, 사용하실 수 있습니다.CURRENT_TIMESTAMP()
명령어를 입력합니다.
정답은 SYSDATE()입니다.
INSERT INTO servers (
server_name, online_status, exchange, disk_space,
network_shares, date_time
)
VALUES (
'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE', SYSDATE()
);
우리는 이 행동을 바꾸고NOW()
같은 방법으로 행동하다SYSDATE()
sysdate_is_now 명령줄 인수를 로 설정합니다.True
.
주의:NOW()
(그것은CURRENT_TIMESTAMP()
에일리어스로서)와 다르다.SYSDATE()
미묘한 방법으로:
SYSDATE()는 실행 시간을 반환합니다.이것은 NOW()의 동작과는 다릅니다.NOW()는 스테이트먼트의 실행을 개시한 시각을 나타내는 일정한 시간을 반환합니다.(저장된 함수 또는 트리거 내에서 NOW()는 함수 또는 트리거 문이 실행된 시간을 반환합니다.)
Erandi가 지적한 바와 같이 테이블은 다음 명령어를 사용하여 작성하는 것이 가장 좋습니다.DEFAULT
새 행을 삽입할 때 컬럼에 타임스탬프가 자동으로 입력되도록 절을 지정합니다.
date_time datetime NOT NULL DEFAULT SYSDATE()
현재의 날짜를 에폭 형식으로 하는 경우는, UNIX_TIMESTamp() 를 사용할 수 있습니다.예를 들어 다음과 같습니다.
select now(3), sysdate(3), unix_timestamp();
항복할 것이다
+-------------------------+-------------------------+------------------+
| now(3) | sysdate(3) | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 | 1543282808 |
+-------------------------+-------------------------+------------------+
연관된:
INSERT INTO servers (server_name, online_status, exchange, disk_space, network_shares)
VALUES('m1','ONLINE','exchange','disk_space','network_shares', NOW())
데이터베이스 설계에서는 일관성과 인덱싱/검색/비교 성능을 위해 Unixtime 사용을 강력히 권장합니다.
UNIX_TIMESTAMP()
그 후에는 언제든지 사람이 읽을 수 있는 형식으로 변환할 수 있으며, 가장 편리한 대로 국제화할 수 있습니다.
FROM_ UNIXTIME (unix_timestamp, [format ])
디폴트값을 로 변경했을 경우CURRENT_TIMESTAMP
더 효율적이긴 하지만
ALTER TABLE servers MODIFY COLUMN network_shares datetime NOT NULL DEFAULT CURRENT_TIMESTAMP;
뿐만 아니라now()
,또한.current_timestamp()
그리고.localtimestamp()
·타임스탬프가 올바르지 않은 주된 이유는 NOW()를 작은 따옴표로 삽입하는 것입니다!MySQL Workbench에서는 이 IDE에 mysql 함수의 작은 따옴표가 추가되어 한 번에 인식하지 못했습니다.)
MySQL Workbench와 같이 따옴표가 작은 함수를 사용하지 마십시오.동작되지 않습니다.
$rs = $db->Insert('register',"'$fn','$ln','$email','$pass','$city','$mo','$fil'","'f_name','l_name=','email','password','city','contact','image'");
언급URL : https://stackoverflow.com/questions/19246309/how-to-get-current-date-time-in-mysql
'programing' 카테고리의 다른 글
"만약" 규칙이란 정확히 무엇입니까? (0) | 2022.09.08 |
---|---|
PHP에서 SQL 주입을 방지하려면 어떻게 해야 합니까? (0) | 2022.09.08 |
Perl과 PHP의 차이점 (0) | 2022.09.06 |
Dapper를 사용하여 BINARY(16)를 GUID에 매핑하려면 어떻게 해야 합니까? (0) | 2022.09.06 |
장고에서 '슬렁'이 뭐죠? (0) | 2022.09.06 |