【问题标题】:SQL: All the suggested GetDate () methods are not workingSQL:所有建议的 GetDate () 方法都不起作用
【发布时间】:2016-05-26 09:41:12
【问题描述】:

我正在做一个任务,我被困在这个地方大约几天。

Getdate() 不适用于此过程。我使用了所有建议的方法。

但我必须再次在这里使用更新语句。那么这里没有使用更新语句的过程代码吗?

Update Engineer set Enter_date = getdate() where EmpNo = 'Emp001000'

【问题讨论】:

  • MySQL 还是 MS SQL Server?请不要标记未涉及的产品!
  • @jarlh - 对不起。我以为一切都在 sql 数据库设计之下。
  • 我看不到你在 SP 的任何地方使用“@Temp_Date”。您是否尝试返回值“@Temp_Date”并将其分配给“@Enter_Date”?如果是,那么谷歌如何从 SP 中返回一个值
  • 执行部分好像错了! - Enter_Date = @Temp_Date
  • 我认为 MySQL 甚至没有 GetDate() 函数。日期/时间是 ANSI SQL 合规性最差的领域之一,许多产品都有自己的版本。

标签: sql-server stored-procedures sql-server-2012 getdate


【解决方案1】:

你不需要@temp_date,把@enter_date改成GetDate()

exec sp_Add_New_Engineer @EmpNo='Emp00100', @EngNo= 'E00070' ,
@Eng_Type ='Electrical Engineer', @FName ='Pramila', @LName='Thivagaran', 
@DOB ='1994/04/02', @Eng_Address='53/2, Peradeniya Road, Kandy', @Enter_Date = getdate(), @ProNo = 'P6'

此外,我建议您格式化您的代码,另外不要在您的 sps 前加上 SP_ 。当您使用 SP_ 时,这里是 some issues you may see

【讨论】:

    【解决方案2】:

    你在哪里使用@Temp_Date。您声明并为其分配了一个值,但从未在其余代码中使用。请参考下面的这个sp。我使用了你的变量而不是 @Enter_Date。

    ALTER PROCEDURE sp_Add_New_Engineer (
        @EmpNo VARCHAR(20)
        ,@EngNo VARCHAR(12)
        ,@Eng_Type VARCHAR(50)
        ,@FName VARCHAR(50)
        ,@LName VARCHAR(50)
        ,@DOB VARCHAR(50)
        ,@Eng_Address VARCHAR(100)
        ,@Enter_Date DATETIME
        ,@ProNo VARCHAR(12)
        )
    AS
    DECLARE @Temp_Date DATETIME
    
    SET @Temp_Date = GETDATE()
    
    BEGIN
        IF (
                (
                    SELECT count(*)
                    FROM Supervisor
                    WHERE EmpNo = @EmpNo
                    ) = 0
                )
            AND (
                (
                    SELECT count(*)
                    FROM Labor
                    WHERE EmpNo = @EmpNo
                    ) = 0
                )
        BEGIN
            INSERT INTO Engineer (
                EmpNo
                ,EngNo
                ,Eng_Type
                ,FName
                ,LName
                ,DOB
                ,Eng_Address
                ,Enter_date
                ,ProNo
                )
            VALUES (
                @EmpNo
                ,@EngNo
                ,@Eng_Type
                ,@FName
                ,@LName
                ,@DOB
                ,@Eng_Address
                ,@Temp_Date
                ,@ProNo
                )
        END
        ELSE
            PRINT 'Employee Number is already in use'
    END
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多