Перевод строки в цифровую форму функции (help datetime_translation
) не следует путать с отображением форматов для дат и времени (help datetime_display_formats
).
Первые имеют специальные коды для масок , а не принимают подробности кодов последних.В вашем примере ddnn20Y
является подробным кодом формата отображения и, следовательно, не является допустимой маской для функции date()
.
Маски для перевода даты и времени требуют комбинаций кодов D
, M
, Y
и h
, m
, s
.Однако реализация зависит от переводимой строки даты в удобочитаемой форме.
Например, допустимо следующее:
. display date("011008", "DM20Y")
17806
В отличие от приведенного ниже, это не так:
. display date("11008", "DM20Y")
.
Любая строка, которая отличается от спецификаций Stata для перевода даты и времени, должна быть сначала обработана с использованием встроенных строковых функций, как в ответе @ NickCox.