[Catalyst] now() in insert

2009-02-06 Thread loki
What is normal way to say:

INSERT INTO foo(title, description, dt) VALUES ('foo', 'bar', NOW());

This obvliously doesn't work:

$c-model('DB::Foo')-create({
title = 'foo',
description = 'bar',
dt = 'NOW()',
});

I'm making first steps with Catalyst, using DBIx::Class (MySQL).

Cannot use 'default NOW()' for that table.

Thanks.

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] now() in insert

2009-02-06 Thread Christian Lackas
* loki l...@sub5.org [090206 12:38]:

Hi Loki,

 $c-model('DB::Foo')-create({
 title = 'foo',
 description = 'bar',
 dt = 'NOW()',

you can give a scalar reference here:

dt = \'now()'

 });

For more details, please see the DBIx::Class documentation, in
particular the FAQ and the Cookbook, e.g.


http://search.cpan.org/~ash/DBIx-Class-0.08010/lib/DBIx/Class/Manual/FAQ.pod#Searching

Christian


___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] now() in insert

2009-02-06 Thread Devin Austin
DateTime also has a -now method.

On Fri, Feb 6, 2009 at 4:45 AM, Christian Lackas christ...@lackas.netwrote:

 * loki l...@sub5.org [090206 12:38]:

 Hi Loki,

  $c-model('DB::Foo')-create({
  title = 'foo',
  description = 'bar',
  dt = 'NOW()',

 you can give a scalar reference here:

dt = \'now()'

  });

 For more details, please see the DBIx::Class documentation, in
 particular the FAQ and the Cookbook, e.g.


 http://search.cpan.org/~ash/DBIx-Class-0.08010/lib/DBIx/Class/Manual/FAQ.pod#Searchinghttp://search.cpan.org/%7Eash/DBIx-Class-0.08010/lib/DBIx/Class/Manual/FAQ.pod#Searching

 Christian


 ___
 List: Catalyst@lists.scsys.co.uk
 Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
 Searchable archive:
 http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
 Dev site: http://dev.catalyst.perl.org/




-- 
Devin Austin
http://www.dreamhost.com/r.cgi?326568/hosting.html - Host with DreamHost!
___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] now() in insert

2009-02-06 Thread Lars Balker Rasmussen
On Fri, Feb 6, 2009 at 5:40 PM, Devin Austin devin.aus...@gmail.com wrote:
 On Fri, Feb 6, 2009 at 4:45 AM, Christian Lackas christ...@lackas.net wrote:
dt = \'now()'

 DateTime also has a -now method.

Careful now, they may not be identical:

% perl -MDateTime -E 'say DateTime-now'
2009-02-06T16:47:48

postgresql= select now();
  now
---
 2009-02-06 17:48:00.240287+01

No timezone in DateTime unless you explicitly ask for it.

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] now() in insert

2009-02-06 Thread Devin Austin
DateTime has ::Formatter classes, I *know* there's a *ahem* MySQL formatter
(DateTime::Format::MySQL i believe), and probably a Pg formatter.

On Fri, Feb 6, 2009 at 9:49 AM, Lars Balker Rasmussen l...@balker.dkwrote:

 On Fri, Feb 6, 2009 at 5:40 PM, Devin Austin devin.aus...@gmail.com
 wrote:
  On Fri, Feb 6, 2009 at 4:45 AM, Christian Lackas christ...@lackas.net
 wrote:
 dt = \'now()'
 
  DateTime also has a -now method.

 Careful now, they may not be identical:

 % perl -MDateTime -E 'say DateTime-now'
 2009-02-06T16:47:48

 postgresql= select now();
  now
 ---
  2009-02-06 17:48:00.240287+01

 No timezone in DateTime unless you explicitly ask for it.

 ___
 List: Catalyst@lists.scsys.co.uk
 Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
 Searchable archive:
 http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
 Dev site: http://dev.catalyst.perl.org/




-- 
Devin Austin
http://www.dreamhost.com/r.cgi?326568/hosting.html - Host with DreamHost!
___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] now() in insert

2009-02-06 Thread J. Shirley
On Fri, Feb 6, 2009 at 8:49 AM, Lars Balker Rasmussen l...@balker.dk wrote:
 On Fri, Feb 6, 2009 at 5:40 PM, Devin Austin devin.aus...@gmail.com wrote:
 On Fri, Feb 6, 2009 at 4:45 AM, Christian Lackas christ...@lackas.net 
 wrote:
dt = \'now()'

 DateTime also has a -now method.

 Careful now, they may not be identical:

 % perl -MDateTime -E 'say DateTime-now'
 2009-02-06T16:47:48

 postgresql= select now();
  now
 ---
  2009-02-06 17:48:00.240287+01

 No timezone in DateTime unless you explicitly ask for it.


That's not entirely true, or rather it is an over simplification of it.

http://search.cpan.org/~drolsky/DateTime-0.4501/lib/DateTime.pm#Floating_DateTimes

It has a floating timezone, which is different than no timezone.
Storing data in UTC or in floating makes much more sense, since you're
not going to succumb to date math, as illustrated here:
http://search.cpan.org/~drolsky/DateTime-0.4501/lib/DateTime.pm#Local_vs._UTC_and_24_hours_vs._1_day

-J

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] now() in insert

2009-02-06 Thread Felix Antonius Wilhelm Ostmann
And DateTime-now give you the time from the server where your script is 
running and SQL now() gives you the time from the database-server!


Lars Balker Rasmussen schrieb:

On Fri, Feb 6, 2009 at 5:40 PM, Devin Austin devin.aus...@gmail.com wrote:
  

On Fri, Feb 6, 2009 at 4:45 AM, Christian Lackas christ...@lackas.net wrote:


   dt = \'now()'
  

DateTime also has a -now method.



Careful now, they may not be identical:

% perl -MDateTime -E 'say DateTime-now'
2009-02-06T16:47:48

postgresql= select now();
  now
---
 2009-02-06 17:48:00.240287+01

No timezone in DateTime unless you explicitly ask for it.

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


  



--
Mit freundlichen Grüßen

Felix Antonius Wilhelm Ostmann
--
Websuche   Search   Technology   GmbH  Co. KG
Martinistraße 3  -  D-49080  Osnabrück  -  Germany
Tel.:   +49 541 40666-0 - Fax:+49 541 40666-22
Email: i...@websuche.de - Website: www.websuche.de
--
AG Osnabrück - HRA 200252 - Ust-Ident: DE814737310
Komplementärin: Websuche   Search   Technology
Verwaltungs GmbH   -  AG Osnabrück  -   HRB 200359
Geschäftsführer:  Diplom Kaufmann Martin Steinkamp
--


___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] now() in insert

2009-02-06 Thread J. Shirley
On Fri, Feb 6, 2009 at 9:04 AM, Devin Austin devin.aus...@gmail.com wrote:
 DateTime has ::Formatter classes, I *know* there's a *ahem* MySQL formatter
 (DateTime::Format::MySQL i believe), and probably a Pg formatter.


Why are you top posting!?  You know better than that.

And I just found this out the other day:
http://search.cpan.org/~cfaerber/DateTime-Format-DBI-0.032/lib/DateTime/Format/DBI.pm

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] now() in insert

2009-02-06 Thread J. Shirley
On Fri, Feb 6, 2009 at 9:19 AM, J. Shirley jshir...@gmail.com wrote:
 On Fri, Feb 6, 2009 at 9:04 AM, Devin Austin devin.aus...@gmail.com wrote:
 DateTime has ::Formatter classes, I *know* there's a *ahem* MySQL formatter
 (DateTime::Format::MySQL i believe), and probably a Pg formatter.


 Why are you top posting!?  You know better than that.

 And I just found this out the other day:
 http://search.cpan.org/~cfaerber/DateTime-Format-DBI-0.032/lib/DateTime/Format/DBI.pm


Premature sending.  Oops.

Something like this can be done in your schema class (not-tested, just
typed and as such probably doesn't work but will with a bit of
tweaking ;)):

package MyApp::Schema;

use parent 'DBIx::Class::Schema';

use Moose;

extends 'DBIx::Class::Schema';

has 'datetime_formatter' = (
is = 'rw',
isa = 'Object',
lazy_build = 1,
builder =
);

use DateTime::Format::DBI;

sub _build_datetime_formatter {
  my $self = shift;
  return DateTime::Format::DBI-new( $self-storage-dbh );
}

1;

Now your $schema has the formatter object automatically built:

$schema-datetime_formatter-format_date( $dt );

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


Re: [Catalyst] now() in insert

2009-02-06 Thread Joel Bernstein
2009/2/6 J. Shirley jshir...@gmail.com:
 On Fri, Feb 6, 2009 at 9:04 AM, Devin Austin devin.aus...@gmail.com wrote:
 DateTime has ::Formatter classes, I *know* there's a *ahem* MySQL formatter
 (DateTime::Format::MySQL i believe), and probably a Pg formatter.
 And I just found this out the other day:
 http://search.cpan.org/~cfaerber/DateTime-Format-DBI-0.032/lib/DateTime/Format/DBI.pm

That is very handy and I will be making use of it.

Thanks ;-)

/joel

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/