date-time.asciidoc 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708
  1. [role="xpack"]
  2. [testenv="basic"]
  3. [[sql-functions-datetime]]
  4. === Date/Time and Interval Functions and Operators
  5. {es-sql} offers a wide range of facilities for performing date/time manipulations.
  6. [[sql-functions-datetime-interval]]
  7. ==== Intervals
  8. A common requirement when dealing with date/time in general revolves around
  9. the notion of `interval`, a topic that is worth exploring in the context of {es} and {es-sql}.
  10. {es} has comprehensive support for <<date-math, date math>> both inside <<date-math-index-names, index names>> and <<mapping-date-format, queries>>.
  11. Inside {es-sql} the former is supported as is by passing the expression in the table name, while the latter is supported through the standard SQL `INTERVAL`.
  12. The table below shows the mapping between {es} and {es-sql}:
  13. [cols="^m,^m"]
  14. |==========================
  15. s|{es}
  16. s|{es-sql}
  17. 2+h| Index/Table datetime math
  18. 2+|<index-{now/M{YYYY.MM}}>
  19. 2+h| Query date/time math
  20. | 1y | INTERVAL 1 YEAR
  21. | 2M | INTERVAL 2 MONTH
  22. | 3w | INTERVAL 21 DAY
  23. | 4d | INTERVAL 4 DAY
  24. | 5h | INTERVAL 5 HOUR
  25. | 6m | INTERVAL 6 MINUTE
  26. | 7s | INTERVAL 7 SECOND
  27. |==========================
  28. `INTERVAL` allows either `YEAR` and `MONTH` to be mixed together _or_ `DAY`, `HOUR`, `MINUTE` and `SECOND`.
  29. TIP: {es-sql} accepts also the plural for each time unit (e.g. both `YEAR` and `YEARS` are valid).
  30. Example of the possible combinations below:
  31. [cols="^,^"]
  32. |===
  33. s|Interval
  34. s|Description
  35. | `INTERVAL '1-2' YEAR TO MONTH` | 1 year and 2 months
  36. | `INTERVAL '3 4' DAYS TO HOURS` | 3 days and 4 hours
  37. | `INTERVAL '5 6:12' DAYS TO MINUTES` | 5 days, 6 hours and 12 minutes
  38. | `INTERVAL '3 4:56:01' DAY TO SECOND` | 3 days, 4 hours, 56 minutes and 1 second
  39. | `INTERVAL '2 3:45:01.23456789' DAY TO SECOND` | 2 days, 3 hours, 45 minutes, 1 second and 234567890 nanoseconds
  40. | `INTERVAL '123:45' HOUR TO MINUTES` | 123 hours and 45 minutes
  41. | `INTERVAL '65:43:21.0123' HOUR TO SECONDS` | 65 hours, 43 minutes, 21 seconds and 12300000 nanoseconds
  42. | `INTERVAL '45:01.23' MINUTES TO SECONDS` | 45 minutes, 1 second and 230000000 nanoseconds
  43. |===
  44. ==== Operators
  45. Basic arithmetic operators (`+`, `-`, etc) support date/time parameters as indicated below:
  46. ["source","sql",subs="attributes,callouts,macros"]
  47. --------------------------------------------------
  48. include-tagged::{sql-specs}/docs/docs.csv-spec[dtIntervalPlusInterval]
  49. --------------------------------------------------
  50. ["source","sql",subs="attributes,callouts,macros"]
  51. --------------------------------------------------
  52. include-tagged::{sql-specs}/docs/docs.csv-spec[dtDateTimePlusInterval]
  53. --------------------------------------------------
  54. ["source","sql",subs="attributes,callouts,macros"]
  55. --------------------------------------------------
  56. include-tagged::{sql-specs}/docs/docs.csv-spec[dtMinusInterval]
  57. --------------------------------------------------
  58. ["source","sql",subs="attributes,callouts,macros"]
  59. --------------------------------------------------
  60. include-tagged::{sql-specs}/docs/docs.csv-spec[dtIntervalMinusInterval]
  61. --------------------------------------------------
  62. ["source","sql",subs="attributes,callouts,macros"]
  63. --------------------------------------------------
  64. include-tagged::{sql-specs}/docs/docs.csv-spec[dtDateTimeMinusInterval]
  65. --------------------------------------------------
  66. ["source","sql",subs="attributes,callouts,macros"]
  67. --------------------------------------------------
  68. include-tagged::{sql-specs}/docs/docs.csv-spec[dtIntervalMul]
  69. --------------------------------------------------
  70. ==== Functions
  71. Functions that target date/time.
  72. [[sql-functions-current-date]]
  73. ==== `CURRENT_DATE/CURDATE`
  74. .Synopsis:
  75. [source, sql]
  76. --------------------------------------------------
  77. CURRENT_DATE
  78. CURRENT_DATE()
  79. CURDATE()
  80. --------------------------------------------------
  81. *Input*: _none_
  82. *Output*: date
  83. .Description:
  84. Returns the date (no time part) when the current query reached the server.
  85. It can be used both as a keyword: `CURRENT_DATE` or as a function with no arguments: `CURRENT_DATE()`.
  86. [NOTE]
  87. Unlike CURRENT_DATE, `CURDATE()` can only be used as a function with no arguments and not as a keyword.
  88. This method always returns the same value for its every occurrence within the same query.
  89. ["source","sql",subs="attributes,callouts,macros"]
  90. --------------------------------------------------
  91. include-tagged::{sql-specs}/docs/docs.csv-spec[currentDate]
  92. --------------------------------------------------
  93. ["source","sql",subs="attributes,callouts,macros"]
  94. --------------------------------------------------
  95. include-tagged::{sql-specs}/docs/docs.csv-spec[currentDateFunction]
  96. --------------------------------------------------
  97. ["source","sql",subs="attributes,callouts,macros"]
  98. --------------------------------------------------
  99. include-tagged::{sql-specs}/docs/docs.csv-spec[curDateFunction]
  100. --------------------------------------------------
  101. Typically, this function (as well as its twin <<sql-functions-today,TODAY())>> function
  102. is used for relative date filtering:
  103. ["source","sql",subs="attributes,callouts,macros"]
  104. --------------------------------------------------
  105. include-tagged::{sql-specs}/docs/docs.csv-spec[filterToday]
  106. --------------------------------------------------
  107. [[sql-functions-current-time]]
  108. ==== `CURRENT_TIME/CURTIME`
  109. .Synopsis:
  110. [source, sql]
  111. --------------------------------------------------
  112. CURRENT_TIME
  113. CURRENT_TIME([precision <1>])
  114. CURTIME
  115. --------------------------------------------------
  116. *Input*:
  117. <1> fractional digits; optional
  118. *Output*: time
  119. .Description:
  120. Returns the time when the current query reached the server.
  121. As a function, `CURRENT_TIME()` accepts _precision_ as an optional
  122. parameter for rounding the second fractional digits (nanoseconds). The default _precision_ is 3,
  123. meaning a milliseconds precision current time will be returned.
  124. This method always returns the same value for its every occurrence within the same query.
  125. ["source","sql",subs="attributes,callouts,macros"]
  126. --------------------------------------------------
  127. include-tagged::{sql-specs}/docs/docs.csv-spec[currentTime]
  128. --------------------------------------------------
  129. ["source","sql",subs="attributes,callouts,macros"]
  130. --------------------------------------------------
  131. include-tagged::{sql-specs}/docs/docs.csv-spec[currentTimeFunction]
  132. --------------------------------------------------
  133. ["source","sql",subs="attributes,callouts,macros"]
  134. --------------------------------------------------
  135. include-tagged::{sql-specs}/docs/docs.csv-spec[curTimeFunction]
  136. --------------------------------------------------
  137. ["source","sql",subs="attributes,callouts,macros"]
  138. --------------------------------------------------
  139. include-tagged::{sql-specs}/docs/docs.csv-spec[currentTimeFunctionPrecision]
  140. --------------------------------------------------
  141. Typically, this function is used for relative date/time filtering:
  142. ["source","sql",subs="attributes,callouts,macros"]
  143. --------------------------------------------------
  144. include-tagged::{sql-specs}/docs/docs.csv-spec[filterCurrentTime]
  145. --------------------------------------------------
  146. [IMPORTANT]
  147. Currently, using a _precision_ greater than 3 doesn't make any difference to the output of the
  148. function as the maximum number of second fractional digits returned is 3 (milliseconds).
  149. [[sql-functions-current-timestamp]]
  150. ==== `CURRENT_TIMESTAMP`
  151. .Synopsis:
  152. [source, sql]
  153. --------------------------------------------------
  154. CURRENT_TIMESTAMP
  155. CURRENT_TIMESTAMP(precision <1>)
  156. --------------------------------------------------
  157. *Input*:
  158. <1> fractional digits; optional
  159. *Output*: date/time
  160. .Description:
  161. Returns the date/time when the current query reached the server.
  162. As a function, `CURRENT_TIMESTAMP()` accepts _precision_ as an optional
  163. parameter for rounding the second fractional digits (nanoseconds). The default _precision_ is 3,
  164. meaning a milliseconds precision current date/time will be returned.
  165. This method always returns the same value for its every occurrence within the same query.
  166. ["source","sql",subs="attributes,callouts,macros"]
  167. --------------------------------------------------
  168. include-tagged::{sql-specs}/docs/docs.csv-spec[curTs]
  169. --------------------------------------------------
  170. ["source","sql",subs="attributes,callouts,macros"]
  171. --------------------------------------------------
  172. include-tagged::{sql-specs}/docs/docs.csv-spec[curTsFunction]
  173. --------------------------------------------------
  174. ["source","sql",subs="attributes,callouts,macros"]
  175. --------------------------------------------------
  176. include-tagged::{sql-specs}/docs/docs.csv-spec[curTsFunctionPrecision]
  177. --------------------------------------------------
  178. Typically, this function (as well as its twin <<sql-functions-now,NOW())>> function is used for
  179. relative date/time filtering:
  180. ["source","sql",subs="attributes,callouts,macros"]
  181. --------------------------------------------------
  182. include-tagged::{sql-specs}/docs/docs.csv-spec[filterNow]
  183. --------------------------------------------------
  184. [IMPORTANT]
  185. Currently, Using a _precision_ greater than 3 doesn't make any difference to the output of the
  186. function as the maximum number of second fractional digits returned is 3 (milliseconds).
  187. [[sql-functions-datetime-day]]
  188. ==== `DAY_OF_MONTH/DOM/DAY`
  189. .Synopsis:
  190. [source, sql]
  191. --------------------------------------------------
  192. DAY_OF_MONTH(datetime_exp<1>)
  193. --------------------------------------------------
  194. *Input*:
  195. <1> date/datetime expression
  196. *Output*: integer
  197. .Description:
  198. Extract the day of the month from a date/datetime.
  199. ["source","sql",subs="attributes,callouts,macros"]
  200. --------------------------------------------------
  201. include-tagged::{sql-specs}/docs/docs.csv-spec[dayOfMonth]
  202. --------------------------------------------------
  203. [[sql-functions-datetime-dow]]
  204. ==== `DAY_OF_WEEK/DAYOFWEEK/DOW`
  205. .Synopsis:
  206. [source, sql]
  207. --------------------------------------------------
  208. DAY_OF_WEEK(datetime_exp<1>)
  209. --------------------------------------------------
  210. *Input*:
  211. <1> date/datetime expression
  212. *Output*: integer
  213. .Description:
  214. Extract the day of the week from a date/datetime. Sunday is `1`, Monday is `2`, etc.
  215. ["source","sql",subs="attributes,callouts,macros"]
  216. --------------------------------------------------
  217. include-tagged::{sql-specs}/docs/docs.csv-spec[dayOfWeek]
  218. --------------------------------------------------
  219. [[sql-functions-datetime-doy]]
  220. ==== `DAY_OF_YEAR/DOY`
  221. .Synopsis:
  222. [source, sql]
  223. --------------------------------------------------
  224. DAY_OF_YEAR(datetime_exp<1>)
  225. --------------------------------------------------
  226. *Input*:
  227. <1> date/datetime expression
  228. *Output*: integer
  229. .Description:
  230. Extract the day of the year from a date/datetime.
  231. ["source","sql",subs="attributes,callouts,macros"]
  232. --------------------------------------------------
  233. include-tagged::{sql-specs}/docs/docs.csv-spec[dayOfYear]
  234. --------------------------------------------------
  235. [[sql-functions-datetime-dayname]]
  236. ==== `DAY_NAME/DAYNAME`
  237. .Synopsis:
  238. [source, sql]
  239. --------------------------------------------------
  240. DAY_NAME(datetime_exp<1>)
  241. --------------------------------------------------
  242. *Input*:
  243. <1> date/datetime expression
  244. *Output*: string
  245. .Description:
  246. Extract the day of the week from a date/datetime in text format (`Monday`, `Tuesday`...).
  247. ["source","sql",subs="attributes,callouts,macros"]
  248. --------------------------------------------------
  249. include-tagged::{sql-specs}/docs/docs.csv-spec[dayName]
  250. --------------------------------------------------
  251. [[sql-functions-datetime-hour]]
  252. ==== `HOUR_OF_DAY/HOUR`
  253. .Synopsis:
  254. [source, sql]
  255. --------------------------------------------------
  256. HOUR_OF_DAY(datetime_exp<1>)
  257. --------------------------------------------------
  258. *Input*:
  259. <1> date/datetime expression
  260. *Output*: integer
  261. .Description:
  262. Extract the hour of the day from a date/datetime.
  263. ["source","sql",subs="attributes,callouts,macros"]
  264. --------------------------------------------------
  265. include-tagged::{sql-specs}/docs/docs.csv-spec[hourOfDay]
  266. --------------------------------------------------
  267. [[sql-functions-datetime-isodow]]
  268. ==== `ISO_DAY_OF_WEEK/ISODAYOFWEEK/ISODOW/IDOW`
  269. .Synopsis:
  270. [source, sql]
  271. --------------------------------------------------
  272. ISO_DAY_OF_WEEK(datetime_exp<1>)
  273. --------------------------------------------------
  274. *Input*:
  275. <1> date/datetime expression
  276. *Output*: integer
  277. .Description:
  278. Extract the day of the week from a date/datetime, following the https://en.wikipedia.org/wiki/ISO_week_date[ISO 8601 standard].
  279. Monday is `1`, Tuesday is `2`, etc.
  280. ["source","sql",subs="attributes,callouts,macros"]
  281. --------------------------------------------------
  282. include-tagged::{sql-specs}/docs/docs.csv-spec[isoDayOfWeek]
  283. --------------------------------------------------
  284. [[sql-functions-datetime-isoweek]]
  285. ==== `ISO_WEEK_OF_YEAR/ISOWEEKOFYEAR/ISOWEEK/IWOY/IW`
  286. .Synopsis:
  287. [source, sql]
  288. --------------------------------------------------
  289. ISO_WEEK_OF_YEAR(datetime_exp<1>)
  290. --------------------------------------------------
  291. *Input*:
  292. <1> date/datetime expression
  293. *Output*: integer
  294. .Description:
  295. Extract the week of the year from a date/datetime, following https://en.wikipedia.org/wiki/ISO_week_date[ISO 8601 standard]. The first week
  296. of a year is the first week with a majority (4 or more) of its days in January.
  297. ["source","sql",subs="attributes,callouts,macros"]
  298. --------------------------------------------------
  299. include-tagged::{sql-specs}/docs/docs.csv-spec[isoWeekOfYear]
  300. --------------------------------------------------
  301. [[sql-functions-datetime-minuteofday]]
  302. ==== `MINUTE_OF_DAY`
  303. .Synopsis:
  304. [source, sql]
  305. --------------------------------------------------
  306. MINUTE_OF_DAY(datetime_exp<1>)
  307. --------------------------------------------------
  308. *Input*:
  309. <1> date/datetime expression
  310. *Output*: integer
  311. .Description:
  312. Extract the minute of the day from a date/datetime.
  313. ["source","sql",subs="attributes,callouts,macros"]
  314. --------------------------------------------------
  315. include-tagged::{sql-specs}/docs/docs.csv-spec[minuteOfDay]
  316. --------------------------------------------------
  317. [[sql-functions-datetime-minute]]
  318. ==== `MINUTE_OF_HOUR/MINUTE`
  319. .Synopsis:
  320. [source, sql]
  321. --------------------------------------------------
  322. MINUTE_OF_HOUR(datetime_exp<1>)
  323. --------------------------------------------------
  324. *Input*:
  325. <1> date/datetime expression
  326. *Output*: integer
  327. .Description:
  328. Extract the minute of the hour from a date/datetime.
  329. ["source","sql",subs="attributes,callouts,macros"]
  330. --------------------------------------------------
  331. include-tagged::{sql-specs}/docs/docs.csv-spec[minuteOfHour]
  332. --------------------------------------------------
  333. [[sql-functions-datetime-month]]
  334. ==== `MONTH_OF_YEAR/MONTH`
  335. .Synopsis:
  336. [source, sql]
  337. --------------------------------------------------
  338. MONTH(datetime_exp<1>)
  339. --------------------------------------------------
  340. *Input*:
  341. <1> date/datetime expression
  342. *Output*: integer
  343. .Description:
  344. Extract the month of the year from a date/datetime.
  345. ["source","sql",subs="attributes,callouts,macros"]
  346. --------------------------------------------------
  347. include-tagged::{sql-specs}/docs/docs.csv-spec[monthOfYear]
  348. --------------------------------------------------
  349. [[sql-functions-datetime-monthname]]
  350. ==== `MONTH_NAME/MONTHNAME`
  351. .Synopsis:
  352. [source, sql]
  353. --------------------------------------------------
  354. MONTH_NAME(datetime_exp<1>)
  355. --------------------------------------------------
  356. *Input*:
  357. <1> date/datetime expression
  358. *Output*: string
  359. .Description:
  360. Extract the month from a date/datetime in text format (`January`, `February`...).
  361. ["source","sql",subs="attributes,callouts,macros"]
  362. --------------------------------------------------
  363. include-tagged::{sql-specs}/docs/docs.csv-spec[monthName]
  364. --------------------------------------------------
  365. [[sql-functions-now]]
  366. ==== `NOW`
  367. .Synopsis:
  368. [source, sql]
  369. --------------------------------------------------
  370. NOW()
  371. --------------------------------------------------
  372. *Input*: _none_
  373. *Output*: datetime
  374. .Description:
  375. This function offers the same functionality as <<sql-functions-current-timestamp,CURRENT_TIMESTAMP()>> function: returns
  376. the datetime when the current query reached the server. This method always returns the same value for its every
  377. occurrence within the same query.
  378. ["source","sql",subs="attributes,callouts,macros"]
  379. --------------------------------------------------
  380. include-tagged::{sql-specs}/docs/docs.csv-spec[nowFunction]
  381. --------------------------------------------------
  382. Typically, this function (as well as its twin <<sql-functions-current-timestamp,CURRENT_TIMESTAMP())>> function is used
  383. for relative date/time filtering:
  384. ["source","sql",subs="attributes,callouts,macros"]
  385. --------------------------------------------------
  386. include-tagged::{sql-specs}/docs/docs.csv-spec[filterNow]
  387. --------------------------------------------------
  388. [[sql-functions-datetime-second]]
  389. ==== `SECOND_OF_MINUTE/SECOND`
  390. .Synopsis:
  391. [source, sql]
  392. --------------------------------------------------
  393. SECOND_OF_MINUTE(datetime_exp<1>)
  394. --------------------------------------------------
  395. *Input*:
  396. <1> date/datetime expression
  397. *Output*: integer
  398. .Description:
  399. Extract the second of the minute from a date/datetime.
  400. ["source","sql",subs="attributes,callouts,macros"]
  401. --------------------------------------------------
  402. include-tagged::{sql-specs}/docs/docs.csv-spec[secondOfMinute]
  403. --------------------------------------------------
  404. [[sql-functions-datetime-quarter]]
  405. ==== `QUARTER`
  406. .Synopsis:
  407. [source, sql]
  408. --------------------------------------------------
  409. QUARTER(datetime_exp<1>)
  410. --------------------------------------------------
  411. *Input*:
  412. <1> date/datetime expression
  413. *Output*: integer
  414. .Description:
  415. Extract the year quarter the date/datetime falls in.
  416. ["source","sql",subs="attributes,callouts,macros"]
  417. --------------------------------------------------
  418. include-tagged::{sql-specs}/docs/docs.csv-spec[quarter]
  419. --------------------------------------------------
  420. [[sql-functions-today]]
  421. ==== `TODAY`
  422. .Synopsis:
  423. [source, sql]
  424. --------------------------------------------------
  425. TODAY()
  426. --------------------------------------------------
  427. *Input*: _none_
  428. *Output*: date
  429. .Description:
  430. This function offers the same functionality as <<sql-functions-current-date,CURRENT_DATE()>> function: returns
  431. the date when the current query reached the server. This method always returns the same value for its every occurrence
  432. within the same query.
  433. ["source","sql",subs="attributes,callouts,macros"]
  434. --------------------------------------------------
  435. include-tagged::{sql-specs}/docs/docs.csv-spec[todayFunction]
  436. --------------------------------------------------
  437. Typically, this function (as well as its twin <<sql-functions-current-timestamp,CURRENT_TIMESTAMP())>> function is used
  438. for relative date filtering:
  439. ["source","sql",subs="attributes,callouts,macros"]
  440. --------------------------------------------------
  441. include-tagged::{sql-specs}/docs/docs.csv-spec[filterToday]
  442. --------------------------------------------------
  443. [[sql-functions-datetime-week]]
  444. ==== `WEEK_OF_YEAR/WEEK`
  445. .Synopsis:
  446. [source, sql]
  447. --------------------------------------------------
  448. WEEK_OF_YEAR(datetime_exp<1>)
  449. --------------------------------------------------
  450. *Input*:
  451. <1> date/datetime expression
  452. *Output*: integer
  453. .Description:
  454. Extract the week of the year from a date/datetime.
  455. ["source","sql",subs="attributes,callouts,macros"]
  456. --------------------------------------------------
  457. include-tagged::{sql-specs}/docs/docs.csv-spec[weekOfYear]
  458. --------------------------------------------------
  459. [[sql-functions-datetime-year]]
  460. ==== `YEAR`
  461. .Synopsis:
  462. [source, sql]
  463. --------------------------------------------------
  464. YEAR(datetime_exp<1>)
  465. --------------------------------------------------
  466. *Input*:
  467. <1> date/datetime expression
  468. *Output*: integer
  469. .Description:
  470. Extract the year from a date/datetime.
  471. ["source","sql",subs="attributes,callouts,macros"]
  472. --------------------------------------------------
  473. include-tagged::{sql-specs}/docs/docs.csv-spec[year]
  474. --------------------------------------------------
  475. [[sql-functions-datetime-extract]]
  476. ==== `EXTRACT`
  477. .Synopsis:
  478. [source, sql]
  479. --------------------------------------------------
  480. EXTRACT(datetime_function<1> FROM datetime_exp<2>)
  481. --------------------------------------------------
  482. *Input*:
  483. <1> date/time function name
  484. <2> date/datetime expression
  485. *Output*: integer
  486. .Description:
  487. Extract fields from a date/datetime by specifying the name of a <<sql-functions-datetime,datetime function>>.
  488. The following
  489. ["source","sql",subs="attributes,callouts,macros"]
  490. --------------------------------------------------
  491. include-tagged::{sql-specs}/docs/docs.csv-spec[extractDayOfYear]
  492. --------------------------------------------------
  493. is the equivalent to
  494. ["source","sql",subs="attributes,callouts,macros"]
  495. --------------------------------------------------
  496. include-tagged::{sql-specs}/docs/docs.csv-spec[dayOfYear]
  497. --------------------------------------------------