Class SFieldTimestamp

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    DateField

    public class SFieldTimestamp
    extends SFieldScalar
    Represents Timestamp field meta data. See getSqlType for issues.
    See Also:
    Serialized Form
    • Constructor Detail

      • SFieldTimestamp

        public SFieldTimestamp​(SRecordMeta meta,
                               java.lang.String columnName,
                               SFieldFlags... pvals)
    • Method Detail

      • queryFieldValue

        public java.lang.Object queryFieldValue​(java.sql.ResultSet rs,
                                                int sqlIndex)
                                         throws java.lang.Exception
        Description copied from class: SFieldMeta
        Issues a JDBC get*() on the result set for the field and converts the database type to the appropriate internal type, eg, Double for a double field. The first column has sqlIndex==1.
        Specified by:
        queryFieldValue in class SFieldMeta
        Throws:
        java.lang.Exception
      • convertToDataSetFieldType

        protected java.lang.Object convertToDataSetFieldType​(java.lang.Object raw)
                                                      throws java.lang.Exception
        Description copied from class: SFieldMeta
        Converts the parameter from the raw type parameter to the correct internal Object type that is stored in the data set. Returns the object if no conversion necessary. Used by SRecordInstance.setObject etc., Not getObject.
        Specified by:
        convertToDataSetFieldType in class SFieldMeta
        Throws:
        java.lang.Exception
      • defaultSqlDataType

        public java.lang.String defaultSqlDataType()
        Time & date is a mess in SQL.

        ISO-92: seems to only support TIMESTAMP. Maybe WITH TIME ZONE. HSQL: Seems to support both TIMESTAMP and DATETIME. No WITH TIME ZONE. MSSQL: TIMESTAMP is not a time, but a transaction id like thing. DATETIME is a date time. POSTGRESQL: Appears to support both TIMESTAMP and DATETIME. Suports? WITH TIME ZONE. MySQL: DATETIME and TIMESTAMP are different data types with different precission.

        TIMESTAMP is ISO, seems to be lowest common denominator.

        Specified by:
        defaultSqlDataType in class SFieldScalar
      • isFKeyCompatible

        public boolean isFKeyCompatible​(SFieldScalar field)
      • javaSqlType

        public int javaSqlType()
        Specified by:
        javaSqlType in class SFieldScalar
        Returns:
        int constant from java.sql.Types, used for setting sql datatype with null values