你可以试试这个?:
如果你想让它作为其中一个日期,可以手动或编程通过存储过程:
CREATE PROCEDURE bcp_test_with_date_parameter
@paramDate DATETIME
AS
BEGIN
DECLARE @bcpCmd varchar(2000)
SET @bcpCmd = 'bcp "SELECT * FROM dbname.schema.tablename'
SET @bcpCmd = @bcpCmd + 'WHERE CONVERT(VARCHAR, datecolumn, 101) = ''' + CONVERT(VARCHAR, @paramDate, 101) + ''' '
SET @bcpCmd = @bcpCmd + ' ORDER BY columnnameofchoice" queryout "'
SET @bcpCmd = @bcpCmd + '"C:\tblNameData.txt" -T -c'
EXEC master..xp_cmdshell @bcpCmd
END
但如果你只是想抓住从另一个表的日期,你可以这样做:
DECLARE @bcpCmd varchar(2000)
DECLARE @dateHolder DATETIME
SELECT @dateHolder = CONVERT(VARCHAR, datecolumn, 101)
FROM dateparametersourcetable
WHERE <place conditions here>
SET @bcpCmd = 'bcp "SELECT * FROM dbname.schema.tablename'
SET @bcpCmd = @bcpCmd + 'WHERE CONVERT(VARCHAR, datecolumn, 101) = ''' + @dateHolder + ''' '
SET @bcpCmd = @bcpCmd + ' ORDER BY columnnameofchoice" queryout "'
SET @bcpCmd = @bcpCmd + '"C:\output.txt" -T -c'
EXEC master..xp_cmdshell @bcpCmd
在对那个上面也可以放置在存储过程中,它真的取决于你想怎么办呢..
有一定的优势在这里 - 脚本可以作为在一个文件中存在OS +链接到svn文件夹中。过去我做过很多存储过程,但这种方法似乎更可取。它看起来非常轻巧。 – sgtz
btw:“%{$ _。OrderDate}”是做什么的?我想首先消化这一点。 – sgtz
%是foreach对象的别名。请参阅get-alias以获取完整的别名列表。 Powershell返回具有属性和方法的对象,但我们只对OrderData属性感兴趣。它所做的是遍历每个对象,即$ _表示管道中的当前对象(在这种情况下只返回一个对象),抓取OrderDate属性并将其分配给$ orderDate变量。 –