在 SQL Server Compact 的 INSERT 语句中使用操纵日期

Use a manipulated date in an INSERT statement, in SQL Server Compact

我正在使用 SQL 服务器紧凑型。

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

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

要插入一个新记录,其中的日期与另一个 table 相差最小,我这样做:

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)

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