2011-04-02 70 views
0

有一个表中包含交易日期。它被设置为时间戳,基本上我想创建一个新的记录,该字段自动插入当前日期。我正在使用visual studio 2010和ASP.net SQL不知道如何去做。不需要SQL注入保护,这只是一个简单的方法。有任何想法吗?将当前日期插入ASP SQL

马克

回答

3
  • Oracle有一个SYSDATE()函数,
  • SqlServer的具有GETDATE()
  • MySQL有NOW()

用它在你的DML(SELECT,INSERT )陈述

+0

嗨,我把GETDATE(),它说,在目前情况下不存在。 – Mark 2011-04-02 22:49:25

+0

这是Oracle吗?如果是这样'SELECT SYSDATE()FROM DUAL;'应该工作(我看你现在添加了适当的标签);另请参见[http://www.grantondata.com/community/dbrosettastone.html] **扩展MySQL的答案** – sehe 2011-04-02 23:20:03

2
INSERT INTO [AdventureWorks].[dbo].[ErrorLog] 
      ([ErrorTime] 
      ,[UserName] 
      ,[ErrorNumber] 
      ,[ErrorMessage] 
) 
    VALUES 
      (GetDate() --This will work for MSSQL 
      ,'userName' 
      ,7551 
      ,'I inserted the current date/Time' 
) 

or(again for SQL服务器)

ALTER TABLE dbo.ErrorLog ADD CONSTRAINT 
    DF_ErrorLog_ErrorTime_current_DateTime DEFAULT (getdate()) FOR ErrorTime) 
0

如果上述代码在存储过程中,那么getDate()应该工作。如果是,你是通过ado.net发送SQL命令字符串,那么你需要做到这一点(在VB为例):

的SqlString = “INSERT INTO mytable的(myDateTimeColumn)VALUES('” &现在()& “')”

myCommand.Execute(的SqlString)...等

+0

GetDate()将仅从客户端(即ado.net命令)起作用。从SSMS或ado.net命令运行上述语句确实没有区别。您将看到的唯一区别是数据库的当前日期时间或客户端。 – Rob 2011-04-03 03:22:24