PHP를 사용하여 mysql 테이블에 타임 스탬프 저장
timestamp
데이터 유형 이있는 MySQL 테이블에 필드가 있습니다. 그 테이블에 데이터를 저장하고 있습니다. 그러나 타임 스탬프 ( 1299762201428
)를 레코드에 전달 하면 값 0000-00-00 00:00:00
이 해당 테이블에 자동으로 저장됩니다 .
타임 스탬프를 MySQL 테이블에 어떻게 저장할 수 있습니까?
내 INSERT
진술 은 다음과 같습니다 .
INSERT INTO table_name (id,d_id,l_id,connection,s_time,upload_items_count,download_items_count,t_time,status)
VALUES (1,5,9,'2',1299762201428,5,10,20,'1'),
(2,5,9,'2',1299762201428,5,10,20,'1')
이렇게 지나가 다
date('Y-m-d H:i:s','1299762201428')
안녕하세요,이 FROM_UNIXTIME()
기능을 사용하세요.
이렇게 :
INSERT INTO table_name
(id,d_id,l_id,connection,s_time,upload_items_count,download_items_count,t_time,status)
VALUES
(1,5,9,'2',FROM_UNIXTIME(1299762201428),5,10,20,'1'),
(2,5,9,'2',FROM_UNIXTIME(1299762201428),5,10,20,'1')
$created_date = date("Y-m-d H:i:s");
$sql = "INSERT INTO $tbl_name(created_date)VALUES('$created_date')";
$result = mysql_query($sql);
명확히해야 할 몇 가지 :
- MySQL 타임 스탬프 필드 유형은 유닉스 타임 스탬프가 아니라 datetime-kind 값을 저장합니다.
- UNIX 타임 스탬프는 일반 int 유형의 숫자입니다.
- 당신이 말하는 타임 스탬프는 일반적인 유닉스 타임 스탬프가 아니라 밀리 초 단위의 타임 스탬프입니다.
따라서 정답은
$timestamp = '1299762201428';
$date = date('Y-m-d H:i:s', substr($timestamp, 0, -3));
데이터 유형 ' bigint unsigned '는이 요구 사항에 적합 할 수 있습니다.
나는 당신이 값을 저장하려는 필드가 datetime 필드 가 아니라고 생각하지만 타임 스탬프에 대해서도 같은 것 같습니다 . 그렇다면 mysql은 형식이 년-월-일시 : 분 : 초가 될 것으로 예상합니다. 타임 스탬프를 저장하려면 다음과 같은 쿼리를 사용하여 필드를 숫자로 변환해야합니다.
alter table <table_name> change <field> <field> bigint unsigned
현재 시간을 사용하는 경우 now () 또는 current_timestamp를 사용할 수 있습니다.
사용 FROM_UNIXTIME()
.
참고 : 1299762201428은 밀리 초 타임 스탬프 (JavaScript의 Date () * 1과 같은)처럼 보이며이를 1000으로 나누어야합니다.
테이블의 필드 유형을 확인하면 타임 스탬프 값이 데이터 유형에 저장됩니다 bigint
.
datetime
유형이 아님
이렇게해야합니다.
$time = new DateTime;
타임 스탬프가 현재 시간이면 mysql NOW()
함수를 사용할 수 있습니다.
Use datetime
field type. It comes with many advantages like human readability (nobody reads timestamps) and MySQL functions.
To convert from a unix timestamp, you can use MySQL function FROM_UNIXTIME(1299762201428)
. To convert back you can use UNIX_TIMESTAMP
: SELECT UNIX_TIMESTAMP(t_time) FROM table_name
.
Of course, if you don't like MySQL function, you could always use PHP: 'INSERT INTO table_name SET t_time = ' . date('Y-m-d H:i:s', $unix_timestamp)
.
Better is use datatype varchar(15)
.
You can use now()
as well in your query, i.e. :
insert into table (time) values(now());
It will use the current timestamp.
You can do: $date = \gmdate(\DATE_ISO8601);
.
If I know the database is MySQL, I'll use the NOW() function like this:
INSERT INTO table_name
(id, name, created_at)
VALUES
(1, 'Gordon', NOW())
참고URL : https://stackoverflow.com/questions/5632662/saving-timestamp-in-mysql-table-using-php
'Programing' 카테고리의 다른 글
인터페이스 내의 내부 클래스 (0) | 2020.09.08 |
---|---|
Django 템플릿 내에서 인덱스로 목록 항목을 참조합니까? (0) | 2020.09.08 |
HTML5 동영상에 미리보기 이미지를 설정하는 방법은 무엇입니까? (0) | 2020.09.08 |
Typescript 맵 반복 (0) | 2020.09.08 |
작업 디렉토리에 숨김을 적용 할 수없는 이유는 무엇입니까? (0) | 2020.09.08 |