datetime.date.jp_era_longFull Japanese era name in kanji followed by year, month, day with Chinese-style character delimiters. Used in formal Japanese government and legal documents.
$ finetype infer -i "令和6年1月15日"
→ datetime.date.jp_era_longSELECT finetype('令和6年1月15日');
-- → 'datetime.date.jp_era_long'CASE
WHEN {col} LIKE '\u4EE4\u548C%' THEN make_date(2018 + CAST(regexp_extract({col}, '(\d+)\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u65E5', 1) AS INT))
WHEN {col} LIKE '\u5E73\u6210%' THEN make_date(1988 + CAST(regexp_extract({col}, '(\d+)\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u65E5', 1) AS INT))
WHEN {col} LIKE '\u662D\u548C%' THEN make_date(1925 + CAST(regexp_extract({col}, '(\d+)\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u65E5', 1) AS INT))
WHEN {col} LIKE '\u5927\u6B63%' THEN make_date(1911 + CAST(regexp_extract({col}, '(\d+)\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u65E5', 1) AS INT))
WHEN {col} LIKE '\u660E\u6CBB%' THEN make_date(1867 + CAST(regexp_extract({col}, '(\d+)\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\d+)\u65E5', 1) AS INT))
END
-- Normalise and cast in one step
SELECT TRY_CAST(finetype_cast(my_column) AS DATE) AS clean_value
FROM my_table
WHERE finetype(my_column) = 'datetime.date.jp_era_long';era_name: regexp_extract({col}, '^([^0-9]+)', 1)
era_year: CAST(regexp_extract({col}, '(\d+)年', 1) AS INT){
"$id": "https://meridian.online/schemas/datetime.date.jp_era_long",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Full Japanese era name in kanji followed by year, month, day with Chinese-style character delimiters. Used in formal Japanese government and legal documents.",
"examples": [
"令和6年1月15日",
"平成31年4月30日",
"昭和64年1月7日"
],
"pattern": "^(令和|平成|昭和|大正|明治)\\d{1,2}年\\d{1,2}月\\d{1,2}日$",
"title": "Japanese Imperial Year (Long/Kanji)",
"type": "string",
"x-finetype-broad-type": "DATE",
"x-finetype-transform": "CASE\n WHEN {col} LIKE '\\u4EE4\\u548C%' THEN make_date(2018 + CAST(regexp_extract({col}, '(\\d+)\\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u65E5', 1) AS INT))\n WHEN {col} LIKE '\\u5E73\\u6210%' THEN make_date(1988 + CAST(regexp_extract({col}, '(\\d+)\\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u65E5', 1) AS INT))\n WHEN {col} LIKE '\\u662D\\u548C%' THEN make_date(1925 + CAST(regexp_extract({col}, '(\\d+)\\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u65E5', 1) AS INT))\n WHEN {col} LIKE '\\u5927\\u6B63%' THEN make_date(1911 + CAST(regexp_extract({col}, '(\\d+)\\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u65E5', 1) AS INT))\n WHEN {col} LIKE '\\u660E\\u6CBB%' THEN make_date(1867 + CAST(regexp_extract({col}, '(\\d+)\\u5E74', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u6708', 1) AS INT), CAST(regexp_extract({col}, '(\\d+)\\u65E5', 1) AS INT))\nEND\n"
}令和6年1月15日平成31年4月30日昭和64年1月7日