Date Transformers
Transform and mask date values
Date Transformers
Transform date and datetime values while preserving temporal patterns or adding privacy protection.
shift_date_random
Shift dates by a random number of days within a range.
Category: DateTime
Type: Transformer
Data Types: date, datetime, timestamp
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
days_range | integer | 30 | Random range (±days) |
Examples
Small shift (±7 days):
columns:
- name: appointment_date
function: shift_date_random
parameters:
days_range: 7
Larger shift (±90 days):
columns:
- name: transaction_date
function: shift_date_random
parameters:
days_range: 90
Behavior
- Input:
2024-03-15 - With
days_range: 30 - Output: Random date between
2024-02-13and2024-04-14
Use Cases
- Obscure exact transaction dates
- Maintain relative ordering within records
- Preserve seasonal patterns (with small shifts)
preserve_month_year
Keep month and year, randomize the day.
Category: DateTime
Type: Transformer
Data Types: date, datetime
Parameters
None
Example
columns:
- name: date_of_birth
function: preserve_month_year
Behavior
- Input:
1985-06-15 - Output:
1985-06-XX(random valid day in June 1985)
Use Cases
- Age calculations remain accurate (same year)
- Monthly aggregations preserved
- Exact birthdates anonymized
Common Patterns
Healthcare: Preserve Age Accuracy
columns:
- name: date_of_birth
function: preserve_month_year
Patients remain in correct age brackets for analysis.
Finance: Shift Transaction Dates
columns:
- name: transaction_date
function: shift_date_random
parameters:
days_range: 14
Transactions shifted but patterns preserved.
Compliance: Minor Date Obfuscation
columns:
- name: signup_date
function: shift_date_random
parameters:
days_range: 3
Small shifts prevent exact matching.
Comparison
| Function | Preserves | Changes |
|---|---|---|
shift_date_random | Relative order (mostly) | Exact date |
preserve_month_year | Month and year | Day |
Tips
Preserve Relationships
When dates relate to each other, shift them together:
columns:
- name: order_date
function: shift_date_random
parameters:
days_range: 30
# ship_date should use generate_date with reference
# to maintain order_date → ship_date relationship
Seasonal Analysis
For reports that group by month, use preserve_month_year:
columns:
- name: sale_date
function: preserve_month_year
Monthly totals remain accurate.
Related Functions
- DateTime Generators - Generate new dates
- Numeric Transformers - Transform numbers
- Masking Functions - General masking