2017-12-28 1 views
3

내가 MySQL은 지금 SQL Server를 사용하는 내 시스템에서 일부 테이블을 변환하고, 나는 TIMESTAMPDIFF와TIMESTAMPDIFF

는 SQL 서버 테이블 테이블을 만드는 방법을 MySQL의에 질문을 데 테이블에 MySQL을 만듭니다

CREATE TABLE [dbo].[login_user](
    [idx] [int] IDENTITY(1,1) NOT NULL, 
    [client_id] [int] NOT NULL, 
    [Login] [datetime] NULL, 
    [Logout] [datetime] NULL, 
    [Time] AS (datediff(second,[Login],[Logout])), 

MySQL의 테이블 :

CREATE TABLE IF NOT EXISTS `login_user` (
    `idx` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `client_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', 
    `login` DATETIME NULL, 
    `Logout` DATETIME NULL, 
    `Time` AS TIMESTAMPDIFF(second,`login`,`Logout`), 
    PRIMARY KEY (`idx`) 
) ENGINE=MyISAM; 

MySQL의에 테이블이 때문에 TIMESTAMPDIFF, 테이블의 생성이 작동하는 방법에 대한 팁의 생성되지 않는?

내 MySQL은 버전 5.7.20이다

이미지 오류 :

enter image description here

+1

당신은에 대한 데이터 유형 사양을 누락 생성 된 열 'Time' INTEGER AS (TIMESTAMPDIFF (second,'login','Logout'))를 시도하십시오. –

+0

@DanGuzman 맙소사, 효과가있었습니다. – carolzinha

답변

0

다음 구문은 MySQL 5.7에서 작동 :

CREATE TABLE IF NOT EXISTS `login_user` (
    `idx` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `client_id` INT(11) UNSIGNED NOT NULL DEFAULT '0', 
    `login` DATETIME NULL, 
    `Logout` DATETIME NULL, 
    `Time` INT(11) AS (TIMESTAMPDIFF(second,`login`,`Logout`)), 
    PRIMARY KEY (`idx`) 
) ENGINE=MyISAM; 
관련 문제