schedule
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-09, from aapl-dividend-for-thai-investors.
| ex_date | decl_label | ex_label | record_label | pay_label | days_decl_to_ex | days_ex_to_pay |
|---|---|---|---|---|---|---|
| 2024-11-08 | 31 ต.ค. 2567 | 8 พ.ย. 2567 | 11 พ.ย. 2567 | 14 พ.ย. 2567 | 8 | 6 |
| 2025-02-10 | 30 ม.ค. 2568 | 10 ก.พ. 2568 | 10 ก.พ. 2568 | 13 ก.พ. 2568 | 11 | 3 |
| 2025-05-12 | 1 พ.ค. 2568 | 12 พ.ค. 2568 | 12 พ.ค. 2568 | 15 พ.ค. 2568 | 11 | 3 |
| 2025-08-11 | 31 ก.ค. 2568 | 11 ส.ค. 2568 | 11 ส.ค. 2568 | 14 ส.ค. 2568 | 11 | 3 |
| 2025-11-10 | 30 ต.ค. 2568 | 10 พ.ย. 2568 | 10 พ.ย. 2568 | 13 พ.ย. 2568 | 11 | 3 |
| 2026-02-09 | 29 ม.ค. 2569 | 9 ก.พ. 2569 | 9 ก.พ. 2569 | 12 ก.พ. 2569 | 11 | 3 |
| 2026-05-11 | 30 เม.ย. 2569 | 11 พ.ค. 2569 | 11 พ.ค. 2569 | 14 พ.ค. 2569 | 11 | 3 |
| 2026-08-10 | 30 ก.ค. 2569 | 10 ส.ค. 2569 | 10 ส.ค. 2569 | 13 ส.ค. 2569 | 11 | 3 |
- Rows × columns
- 8 × 7
- Period covered
- to
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
ex_date |
date | 2024-11-08 to 2026-08-10 | |
decl_label |
text | 8 distinct values (1 พ.ค. 2568, 29 ม.ค. 2569, 30 ก.ค. 2569…) | |
ex_label |
text | 8 distinct values (10 ก.พ. 2568, 10 พ.ย. 2568, 10 ส.ค. 2569…) | |
record_label |
text | 8 distinct values (10 ก.พ. 2568, 10 พ.ย. 2568, 10 ส.ค. 2569…) | |
pay_label |
text | 8 distinct values (12 ก.พ. 2569, 13 ก.พ. 2568, 13 พ.ย. 2568…) | |
days_decl_to_ex |
number | 8 to 11 | |
days_ex_to_pay |
number | 3 to 6 |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
SELECT
ex_date AS ex_date,
concat(toString(toDayOfMonth(decl_date)), ' ', arrayElement(['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'], toMonth(decl_date)), ' ', toString(toYear(decl_date) + 543)) AS decl_label,
concat(toString(toDayOfMonth(ex_date)), ' ', arrayElement(['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'], toMonth(ex_date)), ' ', toString(toYear(ex_date) + 543)) AS ex_label,
concat(toString(toDayOfMonth(rec_date)), ' ', arrayElement(['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'], toMonth(rec_date)), ' ', toString(toYear(rec_date) + 543)) AS record_label,
concat(toString(toDayOfMonth(pay_dt)), ' ', arrayElement(['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'], toMonth(pay_dt)), ' ', toString(toYear(pay_dt) + 543)) AS pay_label,
dateDiff('day', decl_date, ex_date) AS days_decl_to_ex,
dateDiff('day', ex_date, pay_dt) AS days_ex_to_pay
FROM
(
SELECT
id,
any(ex_dividend_date) AS ex_date,
any(declaration_date) AS decl_date,
any(record_date) AS rec_date,
any(pay_date) AS pay_dt
FROM global_markets.stocks_dividends
WHERE ticker = 'AAPL'
AND ex_dividend_date >= today() - 760
AND declaration_date > toDate('2000-01-01')
AND record_date > toDate('2000-01-01')
AND pay_date > toDate('2000-01-01')
GROUP BY id
)
ORDER BY ex_date
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.