.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Tangram::Type::TimeAndDate 3pm" .TH Tangram::Type::TimeAndDate 3pm "2015-10-09" "perl v5.20.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Tangram::Type::TimeAndDate \- map date & time fields .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Tangram; \& \& # any of: \& use Tangram::Type::Date; # RAW \- use with caution \& use Tangram::Type::Time; \& use Tangram::Type::Date::Cooked; # pure ISO\-8601 \& use Tangram::Type::Date::DateTime; \& use Tangram::Type::Date::Manip; \& use Tangram::Type::Date::TimePiece; \& \& Tangram::Schema\->new( \& classes => { \& NaturalPerson => { \& fields => { \& rawdatetime => [ qw( birth death ) ], \& rawdate => [ qw( depart return ) ], \& rawtime => [ qw( breakfast lunch dinner ) ], \& cookeddatetime => [ qw( cooked ) ], \& dmdatetime => [ qw( datemanip ) ], \& timepiece => [ qw( fob ) ], \& datetime => [ qw( bloat ) ], .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These classes are responsible for mapping strings to \s-1SQL\s0 date or time types. These classes are not imported by Tangram.pm, thus they must be explicitly imported via a \f(CW\*(C`use\*(C'\fR directive. .PP The three typetags \f(CW\*(C`rawdate\*(C'\fR, \f(CW\*(C`rawtime\*(C'\fR and \f(CW\*(C`rawdatetime\*(C'\fR are for mapping strings to \s-1SQL\s0 date/time types, for databases that differentiate between \*(L"dates\*(R" and \*(L"times\*(R". 'Raw' means that Tangram doesn't attempt to interpret the strings, it merely passes them down to \s-1DBI.\s0 .PP \&\f(CW\*(C`cookeddatetime\*(C'\fR is like \f(CW\*(C`rawdatetime\*(C'\fR except that the date is converted from the \s-1DBMS\s0 format to \s-1ISO\-8601\s0 in the form : .PP .Vb 1 \& YYYY\-MM\-DDTHH:MM:SS .Ve .PP for example: .PP .Vb 1 \& 2004\-12\-25T13:14:15 .Ve .PP Other modules then further cook this \s-1ISO\s0 date into an object as is the convention for a particular module. This only works with back-ends that allow per-connection settings for the default date format, such as Tangram::Driver::Oracle. .PP On the way back out, the date is converted back to the \s-1DBMS\s0 format. This is achieved via vendor-specific functions mentioned in \&\f(CW\*(C`Tangram::Relational\*(C'\fR. .PP The persistent fields may be specified either as a hash or as an array of field names. .PP In the hash form, each entry consists in a field name and an associated option hash. The option hash may contain the following fields: .IP "\(bu" 4 col .IP "\(bu" 4 sql .PP \&\f(CW\*(C`col\*(C'\fR sets the name of the column used to store the field's value. This field is optional, it defaults to the persistent field name. Override if the field name is not an acceptable \s-1SQL\s0 column name. .PP \&\f(CW\*(C`sql\*(C'\fR sets the \s-1SQL\s0 type of the column. Used by \fISchema::deploy()\fR when initializing a database. Defaults to '\s-1VARCHAR\s0(255) \s-1NULL\s0' for strings, \&'\s-1INT NULL\s0' for ints and '\s-1REAL NULL\s0' for reals. .PP The persistent fields may also be specified as an array of strings, in which case the defaults are used.