Re: [sqlalchemy] Re: AM/PM question [ANSWERED]

2020-03-20 Thread Rich Shepard

On Fri, 20 Mar 2020, Jonathan Vanasco wrote:


It doesn't matter when the time is entered or what it is supposed to
reflect. The best option -- by a wide margin -- for storing any time
values is in a TIMESTAMP column ...


Jonathan,

Thanks. I've not before needed this information and I appreciate your
providing the insight I need.

Best regards,

Rich

--
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper


http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups "sqlalchemy" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/alpine.LNX.2.20.2003201211150.2460%40salmo.appl-ecosys.com.


Re: [sqlalchemy] Re: AM/PM question

2020-03-20 Thread Jonathan Vanasco
It doesn't matter when the time is entered or what it is supposed to 
reflect.  The best option -- by a wide margin -- for storing any time 
values is in a TIMESTAMP column, and for storing date+time values is in a 
DATETIME column.  These types of columns/fields/formats exist to streamline 
data storage and leverage numerous operations on the database and in your 
application.

Even though you will only show the user an option of 12hours and am/pm, on 
the backend you should be storing the time in a 24hour native time object; 
if there is a date associated, you should be storing it in a timestamp.  
That will allow you to easily query records with these fields in the future.

Timestamp/Datetime:
   * Python https://docs.python.org/3/library/datetime.html#datetime-objects
 
   * SqlAlchemy 
https://docs.sqlalchemy.org/en/13/core/type_basics.html?highlight=timestamp#sqlalchemy.types.DateTime

Time:
   * Python - https://docs.python.org/3/library/datetime.html#time-objects
   * SqlAlchemy Column - 
https://docs.sqlalchemy.org/en/13/core/type_basics.html?highlight=timestamp#sqlalchemy.types.Time

If you feel a strong need to handle this otherwise, you can use an Enum (
https://docs.sqlalchemy.org/en/13/core/type_basics.html?highlight=timestamp#sqlalchemy.types.Enum)
 
column to constrain the am/pm options.  You can also just use a string 
column and enforce the selection with constraints.

Your best path forward, however, is convert the user-input into a python 
Time or DateTime object and store that object in the database; then you can 
construct the widgets for "display/edit" by setting their defaults to be 
the day/month/year/hour/minute of the datetime field in your sqlalchemy 
object.



-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/50f736a5-4dd3-4537-9530-7b990eb64473%40googlegroups.com.


Re: [sqlalchemy] Re: AM/PM question

2020-03-20 Thread Rich Shepard

On Fri, 20 Mar 2020, Jonathan Vanasco wrote:


The common approach to this situation is storing the data as a 24hour
timestamp in the database/sqlalchemy and converting it to a 12hour am/pm
for display/editing.

You could use a "12 hour" option and an enum column for am/pm or a string.
You're going to have a much easier time in the longterm by using a standard
timestamp though.


Jonathan,

I understand this working if the time to be entered is the current time, but
not if the time is different. For example, a sample collection time and its
analysis times will be different and, in my application, entered well after
they occured. That's why I'm asking for guidance.

For example, a sample could be taken on 1 June at 11:00 hours, transported
to the analytical laboratory where it was analyzed on 2 June at 13:50 hours.
The report is sent to the user on 10 June and those times are entered in the
application any time after that.

Regards,

Rich

--
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper


http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups "sqlalchemy" group.

To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/alpine.LNX.2.20.2003201101410.2460%40salmo.appl-ecosys.com.


[sqlalchemy] Re: AM/PM question

2020-03-20 Thread Jonathan Vanasco
The common approach to this situation is storing the data as a 24hour 
timestamp in the database/sqlalchemy and converting it to a 12hour am/pm 
for display/editing.

You could use a "12 hour" option and an enum column for am/pm or a string. 
You're going to have a much easier time in the longterm by using a standard 
timestamp though.

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/1fcf1565-a1d1-40b9-b094-4f8671838905%40googlegroups.com.