# DMY Date with Abbreviated Month (dash-separated)

Key: `datetime.date.dmy_dash_abbrev`

Day-MonthAbbr-Year with dash separators. The Oracle NLS\_DATE\_FORMAT default. Extremely common in banking and financial data exports. Unambiguous due to named month.

Page: <https://meridian.online/docs/finetype/types/datetime/date/dmy_dash_abbrev>

Format: `%d-%b-%Y`

Samples: `15-Jan-2024`, `31-Dec-2023`, `01-Jun-2000`

## Use it

Shell

```shell
finetype infer -i '15-Jan-2024' --mode column
# → datetime.date.dmy_dash_abbrev
```

DuckDB

```sql
SELECT ft_infer('15-Jan-2024');
-- → 'datetime.date.dmy_dash_abbrev'
```

Cast template: {col} is your column

```sql
strptime({col}, '%d-%b-%Y')::DATE
-- Format: %d-%b-%Y
```

## Background

### Origin

Oracle Database's NLS\_DATE\_FORMAT parameter defines the default date format used by the TO\_CHAR and TO\_DATE functions.[[1]](https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/setting-up-globalization-support-environment.html) Oracle documents the default value of NLS\_DATE\_FORMAT as derived from NLS\_TERRITORY.[[2]](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/NLS_DATE_FORMAT.html) Oracle's MON format element stands for the abbreviated name of the month.[[3]](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/Format-Models.html)

SAS's DATEw. format writes date values in the form ddmmmyy, ddmmmyyyy, or dd-mmm-yyyy.[[4]](https://support.sas.com/documentation/cdl/en/leforinforref/64790/HTML/default/n16vcb736tge20n1ex3yxx49fzqa.htm) In SAS's DATEw. format, mmm is the first three letters of the month name.[[4]](https://support.sas.com/documentation/cdl/en/leforinforref/64790/HTML/default/n16vcb736tge20n1ex3yxx49fzqa.htm) SAS's documentation gives 16-MAR-2012 as the output of the DATE11. format.[[4]](https://support.sas.com/documentation/cdl/en/leforinforref/64790/HTML/default/n16vcb736tge20n1ex3yxx49fzqa.htm)

### Use

A day, a three-letter month and a four-digit year are hard to misread: no reader confuses 03-Feb-2024 with the third of some other month, which is a good reason for a source system to choose it. (Meridian's view) In Oracle, the capitalisation of an abbreviation follows the capitalisation of its format element, so 'DAY' produces 'MONDAY' and 'Day' produces 'Monday'.[[3]](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/Format-Models.html) Expect the month in capitals as well as in title case, and check whether your parser and validation rules accept both. (Meridian's view)

Oracle's NLS\_DATE\_LANGUAGE parameter determines the language of the month abbreviations used by the default date format.[[1]](https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/setting-up-globalization-support-environment.html)

### Where you'll meet it

The Reserve Bank of Australia's F11.1 exchange-rate CSV writes its daily observation dates in this form, such as 03-Jan-2023.[[5]](https://www.rba.gov.au/statistics/tables/csv/f11.1-data.csv) The Reserve Bank of Australia's F11.1 exchange-rate CSV also writes its publication dates in this form, such as 16-Oct-2026.[[5]](https://www.rba.gov.au/statistics/tables/csv/f11.1-data.csv)

## Sources

1. [Setting Up a Globalization Support Environment](https://docs.oracle.com/en/database/oracle/oracle-database/21/nlspg/setting-up-globalization-support-environment.html) — documentation
2. [1.222 NLS\_DATE\_FORMAT](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/NLS_DATE_FORMAT.html) — documentation
3. [Format Models](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/Format-Models.html) — documentation
4. [DATEw. Format](https://support.sas.com/documentation/cdl/en/leforinforref/64790/HTML/default/n16vcb736tge20n1ex3yxx49fzqa.htm) — documentation
5. [F11.1 EXCHANGE RATES](https://www.rba.gov.au/statistics/tables/csv/f11.1-data.csv) — dataset

## How it's detected

Oracle NLS\_DATE\_FORMAT default (DD-MON-YYYY). High prevalence in enterprise database exports.
