[php] 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를 사용할 수 있습니다.


답변

now()쿼리에서도 사용할 수 있습니다 .

insert into table (time) values(now());

현재 타임 스탬프를 사용합니다.