【问题标题】:Use a manipulated date in an INSERT statement, in SQL Server Compact在 SQL Server Compact 中的 INSERT 语句中使用操作日期
【发布时间】:2015-08-26 07:36:29
【问题描述】:

我正在使用 SQL Server Compact。

要获取没有时间的日期,I do this:

CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME);

要插入一条新记录,其中日期是另一个表中的最小日期,我这样做:

INSERT INTO [Product] ([OrderDate], [Name]) 
SELECT TOP(1) [OrderDate], 'Widget' FROM [OtherProduct];

我如何结合这两个想法?我想要这样的东西,但它不起作用

INSERT INTO [Product] ([OrderDate], [Name]) 
SELECT CAST(FLOOR(CAST(TOP(1) [OrderDate] AS FLOAT)) AS DATETIME), 'Widget' FROM [OtherProduct];

错误:

There was an error parsing the query. [ Token in error = TOP ]

【问题讨论】:

  • TOP(1) 应该是SELECT TOP(1) CAST(FLOOR(CAST( [OrderDate] AS FLOAT)) AS DATETIME)

标签: sql sql-server sql-server-ce sql-server-ce-4


【解决方案1】:

我们必须在正确的位置指定TOP(1)

INSERT INTO [Product] ([OrderDate], [Name]) 
SELECT TOP(1) CAST(FLOOR(CAST([OrderDate] AS FLOAT)) AS DATETIME), 'Widget' FROM [OtherProduct];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2012-02-17
    • 2010-11-09
    相关资源
    最近更新 更多