PHP의 SQL을 사용하여 초 단위로 날짜 시간 저장
데이터베이스에 티커 세부사항을 삽입하기 위해 아래 PHP에서 이 기능을 만들었습니다.json 데이터가 매 분마다 업데이트되기 때문에 datetime 필드를 초 단위로 데이터베이스에 저장하고 싶습니다.
function insert(){
$jsonArray = json_decode(self::getTicker(), true);
var_dump($jsonArray);
foreach ($jsonArray as $value) {
$high = $value['high'];
$low = $value['low'];
$last = $value['last'];
$buy = $value["buy"];
$sell = $value['sell'];
$date = $value['date'];
$vol = $value['vol'];
}
$dateF = gmdate("Y-m-d H:i:s", $date);
$sql = "INSERT INTO `ticker_history`
(`ticker_history_high`,
`ticker_history_low`,
`ticker_history_vol`,
`ticker_history_last`,
`ticker_history_buy`,
`ticker_history_sell`,
`ticker_history_date`)
VALUES
(?, ?, ?, ?, ?, ?, ?)";
$stmt = $this->conn->prepare($sql);
$stmt->bind_param("dddddss", $high,$low,$vol,$last,$buy,$sell,$dateF);
$result = $stmt->execute();
$stmt->close();
if ($result) {
// ticker successfully inserted
return print_r(TICKER_CREATED_SUCCESSFULLY);
} else{
return print_r(TICKER_CREATE_FAILED);
}
}
datetime 열은 Y-m-d H:i:s 구조를 사용합니다.
항상 초를 저장합니다.그러나 PHP의 DateTime 클래스를 사용하여 다음과 같은 날짜 형식을 지정할 수 있습니다.
$date = new DateTime();
echo $date->format('Y-m-d H:i'); // outputs 2017-08-18 17:05
DB를 쿼리할 때 WHERE 절에서 다음과 같이 말할 수 있습니다.
...WHERE datecolumn = '".$date->format('Y-m-d H:i:00')."' etc
예:
$date = new DateTime();
echo $date->format('Y-m-d H:i:s')."\n"; // 2017-08-18 17:09:15
echo $date->format('Y-m-d H:i:00')."\n"; // 2017-08-18 17:09:00
실제로 보기: https://3v4l.org/D47pA
하지만 당신은 당신의 문자열을 DateTime 생성자에게 전달할 수 있습니다.
new DateTime($row['datecolumn']);
사용하다strtotime()
-
$dateF = gmdate('g:ia', strtotime($date));
그date() function
-string date ( string $format [, int $timestamp = time() ] )
어디서$timestamp
정수 유닉스 타임스탬프입니다.
그냥 바꾸기$dateF
여기까지:
gmdate('d-m-y H:i',strtotime($date)));
또는 SQL 쿼리에서 다음을 수행합니다.
DATE(date, '%Y-%M-%d %H:%i')
MARIADB에서:
DATE_FORMAT(date, '%H:%i')
올바른 MySQL/MariaDB 솔루션의 경우 다음을 적용합니다.
mysql> SELECT DATE_FORMAT(now(), "%Y-%m-%d %H:%i");
+--------------------------------------+
| DATE_FORMAT(now(), "%Y-%m-%d %H:%i") |
+--------------------------------------+
| 2017-08-21 21:35 |
+--------------------------------------+
참고: 표에 저장된 값은 정확합니다.DATETIME
또는TIMESTAMP
의2017-08-21 21:35:00
.
이 접근 방식은 PHP에서 날짜를 계산하는 것보다 코딩이 덜합니다.
언급URL : https://stackoverflow.com/questions/45759502/store-datetime-without-seconds-using-sql-in-php
'programing' 카테고리의 다른 글
Invoke-Command 오류 "지정된 명명된 매개 변수를 사용하여 매개 변수 집합을 확인할 수 없습니다. (0) | 2023.08.15 |
---|---|
그리기 가능한 리소스 이미지를 비트맵으로 변환 (0) | 2023.08.15 |
제한된 제어로 Oracle View Definition 가져오기 (0) | 2023.08.15 |
PowerShell에서 어레이 변수 비교 (0) | 2023.08.15 |
64비트 시스템에서 32비트 모드로 Oracle Client 실행 (0) | 2023.08.15 |