Используя приведенный ниже пример моего учебного процесса, кто-нибудь может помочь мне в следующих сомнениях:
- Как отформатировать столбец даты и времени с определенным форматом даты
- Как найтивремя между началом и остановкой выполнения в секундах
Я создал схему с запросом ниже,
CREATE TABLE User (UserID int NOT NULL UNIQUE, Username Varchar(200), PRIMARY KEY (UserID));
create table Process (ProcessID int NOT NULL UNIQUE, ProcessName varchar(100),LastModifiedDate datetime, LastModifiedByUser int not null UNIQUE, PRIMARY KEY (ProcessID),
FOREIGN KEY (LastModifiedByUser) REFERENCES User(UserID));
create table session (SessionID int NOT NULL UNIQUE, processID int NOT NULL UNIQUE , startdatetime datetime , stopdatetime datetime, startedbyuser int NOT NULL UNIQUE , PRIMARY KEY (sessionid) , FOREIGN KEY (processid) REFERENCES process(ProcessID) , FOREIGN KEY (startedbyuser) REFERENCES user (UserID));
INSERT INTO User (UserID, Username)VALUES ('1', "XXX");
INSERT INTO User (UserID, Username)VALUES ('2', "YYY");
INSERT INTO User (UserID, Username)VALUES ('3', "ZZZ");
INSERT INTO Process (ProcessID, ProcessName, LastModifiedDate,LastModifiedByUser) VALUES ('100', "running the job", CAST(N'2012-06-18 10:34:09.000' AS DateTime) , '1');
INSERT INTO Process (ProcessID, ProcessName, LastModifiedDate,LastModifiedByUser) VALUES ('101', "Forced stopped the application", CAST(N'2012-06-18 10:34:09.000' AS DateTime) , '3');
INSERT INTO session (SessionID, processID, startdatetime,stopdatetime , startedbyuser) values ('1001', '101',CAST(N'2012-06-18 12:34:09.000' AS DateTime ), CAST(N'2012-06-18 23:34:09.000' AS DateTime), '1');
INSERT INTO session (SessionID, processID, startdatetime,stopdatetime , startedbyuser) values ('1002', '100',CAST(N'2012-06-18 15:34:09.000' AS DateTime ), CAST(N'2012-06-18 17:34:09.000' AS DateTime), '3');
И попытался получить данные,
SELECT Process.ProcessID, session.startedbyuser , session.startdatetime, session.stopdatetime , Process.LastModifiedDate, process.LastModifiedByUser FROM Process INNER JOIN session ON Process.ProcessID=session.ProcessID;