in reply to Need help in Perl DBI (SQLite) execute behaviour

Try
$stHandle = $dbHandle->prepare( qq{ DELETE FROM TB_SESSIONS WHERE (TB_SESSIONS.creationTime + ? ) < CAST(? AS INTEGER) } );
poj

Replies are listed 'Best First'.
Re^2: Need help in Perl DBI (SQLite) execute behaviour
by sam_bakki (Pilgrim) on Jul 13, 2013 at 12:49 UTC

    Hi poj

    Great. This works as expected. From DBI doc, I understand that DBI will do the type conversion for me from scalar automatically. Looks like in this case I need to do it manually. But why only for RHS? because LHS is doing addition, so it is converted to INTEGER automatically?

    Thanks :)

    Thanks & Regards,
    Bakkiaraj M
    My Perl Gtk2 technology demo project - http://code.google.com/p/saaral-soft-search-spider/ , contributions are welcome.

      Is your database field creationTime type INTEGER ?.

      You might find this statement works

      DELETE FROM session WHERE creationTime < ?

      if you make the parameter

      (time() - SESSION_MAX_LIFE_TIME)

      which I think is easier to understand

      poj