2016-12-24 6 views
-1

Где я могу поставить этот getdate() вызов в следующих утверждений:Где я могу поместить этот вызов getdate()?

CREATE PROCEDURE sp_test 
    (@email nvarchar(50), @password nvarchar(50)) 
AS 
    SELECT employee_id, position 
    FROM tbl_employee_tbl 
    WHERE email = @email AND login_password = @password 

    INSERT INTO tbl_log_activity(employee_id, sign_in_time) 
     SELECT 
      employee_id 
     FROM 
      tbl_employee_tbl,getdate() 
     WHERE 
      email = @email 
+2

Side Примечание: вы должны ** ** не использовать 'sp_' префикса для хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –

ответ

3

Изменить второе заявление таким образом:

INSERT INTO tbl_log_activity(employee_id,sign_in_time) 
SELECT employee_id, Getdate() 
FROM tbl_employee_tbl 
WHERE [email protected] 
+0

** процедура ALTER [DBO]. [Sp_test] (@ электронной почты NVARCHAR (50) @ пароля NVARCHAR (50)) как выберите employee_id, положение от tbl_employee_tbl, где электронная почта = @ адрес электронной почты и login_password = @password вставки в tbl_log_activity (employee_id, sign_in_time) выберите employee_id, выберите FORMAT (GETDATE(), 'dd/mm/yyyy, hh: mm: ss') в качестве даты от tbl_employee_tbl, где email = @ email ** –

+0

Я хочу изменить формат даты –

1
create procedure 
sp_test(@email nvarchar(50),@password nvarchar(50)) 
as 
select 
    employee_id, 
    position 
from 
    tbl_employee_tbl 
where 
    [email protected] and login_password= @password 

insert into 
    tbl_log_activity(employee_id,sign_in_time) 
    select 
     employee_id 
     ,getdate() 
    from 
     tbl_employee_tbl 
    where [email protected] 
+0

ALTER процедура [DBO]. [sp_test] (@ электронной почты NVARCHAR (50) @ пароль NVARCHAR (50)) как выберите employee_id, положение от tbl_employee_tbl, где электронная почта = @ адрес электронной почты и login_password = @password вставки в tbl_log_activity (employee_id, sign_in_time) выберите employee_id, выберите FORMAT (GETDATE(), 'dd/mm/yyyy, hh: mm: ss ') в качестве даты от tbl_employee_tbl, где email = @ email –

+0

Я хочу изменить формат dae .. в этом утверждении –

+0

@Nauman Arain Каков тип данных 'sign_in_time'? –

0

Вы можете попробовать это:

FORMAT() функция не будет работать в SQL Server 2008, поэтому вы можете перейти на CONVERT().

ALTER procedure [dbo].[sp_test] 
(
@email nvarchar(50), 
@password nvarchar(50) 
) 
as 

select employee_id,position 
from tbl_employee_tbl 
where [email protected] and login_password= @password 

insert into tbl_log_activity(employee_id,sign_in_time) 
select employee_id,convert(varchar(25), GETDATE(),131) as date 
from tbl_employee_tbl 
where [email protected] 

Примечание: Но я рекомендовал бы вам не хранить дату с любым форматом в базе данных. Храните его как дату и время, когда вы хотите получить это значение, вы можете отформатировать его в запросе выбора и отобразить его в соответствии с нашей потребностью.

Тем не менее, если вы хотите сохранить дату в определенном формате в db, убедитесь, что у вас есть столбец sign_in_time как varchar (25).

0

изменить код, как это

CREATE PROCEDURE sp_test 
(@email nvarchar(50), @password nvarchar(50)) 
AS 
SELECT employee_id, position 
FROM tbl_employee_tbl 
WHERE email = @email AND login_password = @password 

INSERT INTO tbl_log_activity(employee_id, sign_in_time) 
    SELECT 
     employee_id ,getdate() 
    FROM 
     tbl_employee_tbl 
    WHERE 
     email = @email 
Смежные вопросы