Можете ли вы попробовать это?:
Если вы хотите использовать его в качестве хранимой процедуры, в которой дата может быть передана вручную или программно:
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
Право выше также может быть помещено в хранимую процедуру, это действительно зависит от того, как вы хотите это сделать ..