2017-12-28 32 views
3

私は、MySQLになりましたSQL Serverを使用し、私のシステムからいくつかのテーブルを変換しています、と私はTIMESTAMPDIFFとTIMESTAMPDIFF

SQL Serverのテーブルのテーブルを作成することができますどのように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; 
関連する問題