나는이 다음 6 정수 DB 컬럼 :MySQL의 쿼리는 다른 열에서 날짜를 복사
- 년
- 월
- 시간
- 분
- 둘째
- 일
대기열이 필요합니다. ry는 모든 행에 대해이 값을 취하고 DATETIME으로 결합하여 다른 열에 넣습니다.
나는이 다음 6 정수 DB 컬럼 :MySQL의 쿼리는 다른 열에서 날짜를 복사
대기열이 필요합니다. ry는 모든 행에 대해이 값을 취하고 DATETIME으로 결합하여 다른 열에 넣습니다.
가장 효율적인 방법은 아니지만 다음과 같이 할 수 있습니다.
UPDATE my_table
SET my_date = CONCAT(my_year, '-', my_month, '-', my_day, ' ',
my_hour, ':', my_mins, ':', my_seconds)
WHERE ...
당신은 문자열로 그들 모두를 넣어 다음과 같이, datetime
에 해당 문자열을 변환 할 수 있습니다 : 그것은 될 수 있도록
update tbl
set datecol = cast(cast(`year` as varchar) + '-' +
cast(`month` as varchar) + '-' +
cast(`day` as varchar) + ' ' +
cast(`hour` as varchar) + ':' +
cast(`minute` as varchar) + ':' +
cast(`second` as varchar) as datetime)
은, 비록 내가, MySQL은 concat
사용 생각 :
cast(concat(cast(`year` as varchar), '-', cast(`month` as varchar), '-',...) as datetime)
당신은, 예를 들어, 그것으로 STR_TO_DATE를 사용하여 직접 그것을 사용할 수 있지만, 당신은 또한 실제 DATETIME로 전환 할 수
CONCAT(year,'-', month, '-', day,' ',hour, ':', min, ':', sec)
날짜 시간 값처럼 보이는 무언가를 만들기 위해 함께 CONCAT 데이터를 사용할 수 있습니다
STR_TO_DATE(
CONCAT(year,'-', month, '-', day,' ',hour, ':', min, ':', sec),
'%Y-%m-%d %H:%i:%S');
CREATE TABLE `x` (
`y` int(4) DEFAULT NULL,
`m` int(4) DEFAULT NULL,
`d` int(4) DEFAULT NULL,
`h` int(4) DEFAULT NULL,
`i` int(4) DEFAULT NULL,
`s` int(4) DEFAULT NULL
);
INSERT INTO x SELECT 2009, 9, 1, 9, 59, 59;
SELECT STR_TO_DATE(CONCAT(y,'-', m,'-', d,'-', h,'-', i,'-', s), '%Y-%m-%d-%h-%i-%s') FROM x;
내가 대신 아포스트로피 (')의 큰 따옴표 (")를 사용하는 데 필요한, 그러나 이것은 일 – Germstorm