Формат команды Disp в MATLAB - PullRequest
0 голосов
/ 26 июля 2011

Я борюсь со следующей командой.В действительности это должно быть выполнено как оператор 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 = '25.07.2011'.Спасибо!

Ответы [ 2 ]

3 голосов
/ 26 июля 2011

Неуместная цитата, по крайней мере в приведенном вами примере кода.Эта третья строка вызова disp объединяет две отдельные строки, а вторая содержит литерал «Datevar».Вы хотите это, которое объединит содержимое переменной с именем Datevar.

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

ИМХО, короткие запросы, подобные этим, будут более читабельными, если вы создадите их с помощью sprintf, поскольку вам не нужно различатькавычки и разделительные кавычки.

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

Если вы включите пример точного результата, который вы получаете, проще диагностировать проблемы, подобные этой.

0 голосов
/ 26 июля 2011

Похоже, вы не хотите, чтобы начальные нули были предоставлены datestr. Не существует спецификаторов даты для возврата не дополненных значений дня и месяца. Вы можете создать нужную строку, используя DATEVEC и SPRINTF , например:

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

ans =

execute SQLname @startdate = '7/25/2011'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...