SQL Select : Update if exists, 如果没有则插入 - 与日期部分比较?

标签 sql sql-server sql-update

我需要使用以下字段更新数据库中的记录

[ID] int (AutoIncr. PK)
[ScorerID] int
[Score] int
[DateCreated] smalldatetime

如果今天的日期存在记录(仅应检查日期部分,而不是时间)和给定的评分者,我想更新此人和这一天的得分值。如果得分手今天没有记录,我想创建一个新记录。

我正在尝试弄清楚如何将其放入单个(这可能吗?)sql 语句中。顺便说一下,我使用 MSSQl 数据库和 ExecuteNonQuery() 方法来发出查询。

最佳答案

IF EXISTS (SELECT NULL FROM MyTable WHERE ScorerID = @Blah AND CONVERT(VARCHAR, DateCreated, 101) = CONVERT(VARCHAR, GETDATE(), 101))
    UPDATE MyTable SET blah blah blah
ELSE
    INSERT INTO MyTable blah blah blah

关于SQL Select : Update if exists, 如果没有则插入 - 与日期部分比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/340366/

相关文章:

XML 中动态节点的 SQL 查询

sql-server - 32位应用程序可以访问64位sql server数据库吗?

sql-server - TSQL 使用子查询更新值

sql - 如何使用当前日期更新 Access 日期/时间字段

sql - Microsoft SQL Server 2008 - 日期

php - 从平面表生成层次结构

sql - 用于从时间戳中减去时间的 Oracle SQL 查询

SQL Server - 日期比较

sql - 如何跨多个数据库查找不为空的特定表(大多数/所有)

sql - 根据插入的 ID 和 SQL 中的另一个非源列更新记录