datetime 형식 mySQL로 현재 날짜 삽입


97

내 데이터베이스에 날짜를 올바르게 삽입하는 데 문제가 있습니다.

$date = date('m/d/Y h:i:s', time());

이 형식을 사용하고 올바르게 에코되지만 삽입 할 때

mysql_query("INSERT INTO table 
(dateposted) 
VALUES ('$date')");

성공적으로 작동하지 않는 것 같고 시간은 00:00:00입니다. 좋은 해결책을 찾을 수 있다면 감사합니다.


2
Dateposted는 datetime 형식입니다.
CCates 2012 년

답변:


222

현재 시간을 저장하려면 MYSQL의 함수를 사용하십시오.

mysql_query("INSERT INTO `table` (`dateposted`) VALUES (now())");

당신이 그것을 할 PHP를 사용해야하는 경우, 형식은 Y-m-d H:i:s그렇게 시도

$date = date('Y-m-d H:i:s');
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$date')");

21
그러나 MySQL 서버 로케일 / 시간대를 사용합니다. U가 다른 서버에 Apache / PHP 및 MySQL이 있고 그중 하나에서 시간대가 잘못 설정되면 U는 다른 값을 갖게됩니다.
Jeff_Alieffson 2013

3
@Jeff_Alieffson이 맞습니다. UTC_TIMESTAMP()( dev.mysql.com/doc/refman/5.5/en/… ) 대신 사용 하는 것이 좋습니다NOW()
Ejaz

나는 똑같이 시도했지만 0000-00-00 00:00:00을 얻고 내 데이터 유형은 datetime입니다. 이것에 어떤 도움이 있습니까?
user9437856

mysql_query () 대신 PDO를 사용하는 것이 좋지 않을까요?
DaWe



6

NOW()MySQL 테이블에 현재 날짜와 시간을 삽입하는 데 사용됩니다. 데이터 유형이있는 모든 필드는 DATETIME, DATE, TIME & TIMESTAMP이 함수와 잘 작동합니다.

YYYY-MM-DD HH : mm : SS

데모:

다음 코드는 NOW()

INSERT INTO auto_ins
(MySQL_Function, DateTime, Date, Time, Year, TimeStamp)
VALUES
(“NOW()”, NOW(), NOW(), NOW(), NOW(), NOW());

5

설정된 type이름 열의 dateposted로를 DATETIME하고 다음 쿼리를 실행합니다 :

INSERT INTO table (`dateposted`) VALUES (CURRENT_TIMESTAMP)

1

" datetime "은 다음과 같은 형식의 날짜를 예상합니다. YYYY-MM-DD HH : MM : SS

따라서 삽입 할 때 날짜 형식을 지정하십시오.


그래서 나는 date ( "YYYY / MM / DD HH : MM : SS", time ()) ;?
CCates 2012 년

아니? 슬래시 (/)가 아닌 대시 (-)를 사용하십시오.
Jan Hančič 2012 년

1
     <?php $date= date("Y-m-d");
$time=date("H:m");
$datetime=$date."T".$time;
mysql_query(INSERT INTO table (`dateposted`) VALUES ($datetime));
?>

<form action="form.php" method="get">
<input type="datetime-local" name="date" value="<?php echo $datetime; ?>">
<input type="submit" name="submit" value="submit">


1
Stack Overflow에 오신 것을 환영합니다! 좋은 답변 은 코드를 설명 하고 제공합니다. 이 코드의 작동 방식과 이것이 최상의 옵션 인 이유에 대한 설명을 포함하도록 답변을 업데이트하는 것을 고려하십시오.
Ajean 2015 년

1

PHP에서 날짜를 전달하면 STR_TO_DATE()mysql 함수를 사용하여 모든 형식을 사용할 수 있습니다 . HTML 양식을 통해 날짜를 삽입하는 것을 고려하십시오.

$Tdate = "'".$_POST["Tdate"]."'" ;    //   10/04/2016
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y')"  ;  
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$Tdate')");

datepostedmysql을해야한다 date유형입니다. 또는 mysql은
경우에 따라 00:00:00 을 추가합니다. 날짜와 시간을 함께 DB에 삽입하여 시간과 초로 계산할 수 있습니다. ().

$Tdate=date('Y/m/d H:i:s') ; // this to get current date as text .
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y %H:%i:%s')"  ;  

1

더 쉽고 효율적으로 만드는 가장 좋은 방법은 다음과 같습니다.

CREATE TABLE table_name (
field1,
..
..
time_updated timestamp default current_timestamp
)

이제 테이블에 행을 삽입 할 때 time_updated현재 시간이 기본값으로 채워 지므로이 필드 ( )를 건너 뛸 수 있습니다.


0

시간대와 함께 사용하십시오.

date_default_timezone_set('Asia/Kolkata');      
$date=date("Y/m/d h:i:sa");

0

$ date = date ( 'Ymd H : i : s'); 유형 : 'datetime'은 전체 날짜와 타임 스탬프를 인쇄하고 싶었 기 때문에 매우 잘 작동했습니다.

$ date = date ( 'Ymd H : i : s'); $ stmtc-> bindParam (2, $ date);


-1

데이터베이스 파일 유형과 함께 다음과 같이 코드를 약간 변경해야한다고 생각합니다.

mysql_query("INSERT INTO table (`dateposted`) VALUES ($datetime)");

희망, 완벽하게 작동합니다.


-2

이것을 사용하십시오

$date = date('m/d/Y h:i:s', time());

그런 다음 MYSQL에서

type=varchar

그러면 날짜와 시간이 성공적으로 삽입됩니다.


첫 번째 기능은 질문에서 사용 된 것과 동일합니다. 이 답변의 나머지 부분은 5 년 된 질문을 다시 열 것을 보장하지 않습니다. 귀하의 솔루션이 5 년 전에 게시 된 것보다 더 나은 이유를 설명해주십시오.
마태 복음 Ciaramitaro

오래된 질문에 데이터 유형에 대해 설명 할 수 있기 때문에
카스가 펜디 교수

-5

이 시도

$('#datepicker2').datepicker('setDate', new Date('<?=$value->fecha_final?>')); 

이것은 jQuery datepicker를 설정합니다. 문제는 MySQL 데이터베이스에 삽입하는 것이 었습니다.
Teepeemm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.