MATLAB中的Disp命令格式

时间:2011-07-25 21:31:14

标签: matlab date

我正在努力使用以下命令。实际上,它将作为SQL语句执行。我使用disp命令打印出下面的语句。

Datevar = datestr(date,'mm/dd/yyyy') ; % 07/25/2011 

% Required command: execute SQLname @startdate = '7/25/2011'

% My current command:
disp([...
'execute SQLname ' ...
'@startdate = ' ''' Datevar ''' ...
])

我尝试了很多种组合,但我无法正确使用此字符串:@startdate ='7/25/2011'。谢谢!

2 个答案:

答案 0 :(得分:3)

错误的引用,至少在您发布的示例代码中。 disp调用的第三行是连接两个单独的字符串,第二行包含一个文字“Datevar”。你想要这个,它将连接名为Datevar的变量的内容。

sql = [...
'execute SQLname ' ...
'@startdate = ''' Datevar '''' ...
];
disp(sql);

恕我直言,如果你用sprintf构建它们,那么像这样的简短查询会更具可读性,因为你不必区分内部引号和分隔引号。

sql = sprintf('execute SQLname @startdate = ''%s''', Datevar);

如果你包含一个确切输出的例子,那么诊断这样的问题会更容易。

答案 1 :(得分:0)

好像你不想要datestr提供的前导零。返回非填充日期和月份值没有日期说明符。您可以使用DATEVECSPRINTF创建所需的字符串,如下所示:

>> date = datevec('2011/07/25');
>> sprintf('execute SQLname @startdate = ''%u/%u/%u''', date([2 3 1]))

ans =

execute SQLname @startdate = '7/25/2011'