programing

mysql DateTime 필드의 시간만 업데이트

padding 2023. 8. 6. 09:54
반응형

mysql DateTime 필드의 시간만 업데이트

MySQL에서 이미 존재하는 DateTime 필드의 시간만 업데이트하려면 어떻게 해야 합니까?저는 날짜가 그대로 유지되기를 원합니다.

사용해 보십시오.

UPDATE yourtable 
SET yourcolumn = concat(date(yourcolumn), ' 21:00:00')
WHERE Id = yourid;

사용해 보십시오.

UPDATE t1 SET DateTimeField = CONCAT(DATE(DateTimeField),' 12:34:56');
UPDATE myTable
SET myDateTime = ADDTIME(DATE(myDateTime), @myTimeSpan)
WHERE id = @id;

MySQL 날짜 함수 MySQL 문서에 문서화됨

저는 다음과 같은 방법으로 해결했습니다.

UPDATE table
SET myDateTime = CONCAT_WS(' ',DATE(myDateTime), CURTIME())
WHERE id = @id;

분명히 당신은 변해야 합니다.CURTIME()당신이 원하는 시간에.

UPDATE myTable
SET myDateTime = ADDTIME(myDateTime, @myTimeSpan)
WHERE id = @id;

함수의 정확한 구문은 다음을 참조하십시오.

사용해 보십시오.

UPDATE sms 
SET entry_period_end_date= entry_period_end_date+INTERVAL 6 Hour 
WHERE TIME(entry_period_end_date) = '06:00:00';

이것이 저를 도와준 것입니다.나는 먼저 시간을 분으로 환산합니다: 새벽 2시 30분에 150.

UPDATE lesson SET starts_at = DATE_ADD(Date(starts_at), INTERVAL 150 MINUTE)

다른 단위를 사용할 수 있지만, 몇 분이면 충분합니다. https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-add

UPDATE `table`
SET time = ADDTIME(time, INTERVAL 13 Hour);

글쎄요, 정확히 당신이 요구하는 것은 불가능합니다.날짜 및 시간 구성 요소는 별도로 업데이트할 수 없으므로 기존 DateTime 값에서 새 DateTime 값을 계산해야 전체 값을 바꿀 수 있습니다.

MySQL DEV 페이지에는 다음과 같은 기능이 표시됩니다.subtime그리고.difftime

3시간 내의 모든 게시물이 위에 있는 시간을 백업하는 샘플 코드:

UPDATE tablepost SET datepost = SUBTIME( datepost , '0 3:0:0' );

값 0은 각 필드를 변경하지 않습니다.이 코드에 주의하여 먼저 선택을 사용하여 이러한 기능을 테스트합니다.

참조: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_subtime

DATE 필드와 TIME 필드가 있고 날짜에 시간을 삽입하려는 경우 다음을 수행합니다.

UPDATE mytable
SET mydatefield = ADDTIME( DATE_FORMAT(mydatefield,'%Y-%m-%d 00:00:00'), mydatefield)
WHERE myid = ...

저는 ADDTIME을 다음과 같은 방법으로 사용했습니다.

클라우드 서버의 이전 버전에서는 DateTime이 UTC로 설정되었지만 DateTime을 Asia/Kolkataie UTC 5:30으로 변경한 후 동일하게 데이터베이스 테이블에 반영하기를 원했습니다.

created_at 및 updated_at 열을 5시간 30분 업데이트하고 싶었습니다.다음을 수행했습니다.

표의 모든 행을 업데이트하려면 다음과 같이 하십시오.

UPDATE 
    products 
SET 
    created_at = ADDTIME(created_at, '5:30:0'), 
    updated_at = ADDTIME(updated_at, '5:30:0') 

새 레코드가 적절한 값으로 업데이트되었으므로 모든 레코드를 업데이트하려면 WHERE 조건을 생략할 수 있습니다.따라서 ID가 2500 미만인 행만 업데이트해야 합니다.

UPDATE 
    products 
SET 
    created_at = ADDTIME(created_at, '5:30:0'), 
    updated_at = ADDTIME(updated_at, '5:30:0') 
WHERE
    id < 2500;

언급URL : https://stackoverflow.com/questions/1326548/update-only-time-in-a-mysql-datetime-field

반응형