Exemplo n.º 1
0
def test_datetime_with_smaller_milliseconds():
    # date time => date time in microseconds with full precision up to
    # microseconds
    value = datetime(2014, 11, 30, 12, 31, 45, microsecond=123)
    formatter = SnowflakeDateTimeFormat(
        'YYYY-MM-DD"T"HH24:MI:SS.FF9')
    assert formatter.format(value) == '2014-11-30T12:31:45.000123'
Exemplo n.º 2
0
def test_struct_time_format_extreme_large():
    # extreme large epoch time
    value = SnowflakeDateTime(time.gmtime(14567890123567), nanosecond=0, scale=1)
    formatter = SnowflakeDateTimeFormat(
        'YYYY-MM-DD"T"HH24:MI:SS.FF', datetime_class=SnowflakeDateTime
    )
    assert formatter.format(value) == "463608-01-23T09:26:07.0"
def test_struct_time_format():
    # struct_time for general use
    value = time.strptime("30 Sep 01 11:20:30", "%d %b %y %H:%M:%S")
    formatter = SnowflakeDateTimeFormat('YYYY-MM-DD"T"HH24:MI:SS.FF')
    assert formatter.format(value) == '2001-09-30T11:20:30.0'

    # struct_time encapsulated in SnowflakeDateTime. Mainly used by SnowSQL
    value = SnowflakeDateTime(time.strptime("30 Sep 01 11:20:30",
                                            "%d %b %y %H:%M:%S"),
                              nanosecond=0,
                              scale=1)
    formatter = SnowflakeDateTimeFormat('YYYY-MM-DD"T"HH24:MI:SS.FF',
                                        datetime_class=SnowflakeDateTime)
    assert formatter.format(value) == '2001-09-30T11:20:30.0'

    # format without fraction of seconds
    formatter = SnowflakeDateTimeFormat('YYYY-MM-DD"T"HH24:MI:SS',
                                        datetime_class=SnowflakeDateTime)
    assert formatter.format(value) == '2001-09-30T11:20:30'
def test_datetime_format_negative():
    """Datetime format negative."""
    value = datetime(2014, 11, 30, 12, 31, 45, microsecond=987654)
    formatter = SnowflakeDateTimeFormat(
        'YYYYYYMMMDDDDD"haha"hoho"hihi"H12HHH24MI')
    assert formatter.format(value) == '20141411M3030DhahaHOHOhihiH1212H2431'
def test_basic_datetime_format():
    """Datetime format basic tests."""
    # date
    value = datetime(2014, 11, 30)
    formatter = SnowflakeDateTimeFormat('YYYY-MM-DD')
    assert formatter.format(value) == '2014-11-30'

    # date time => date
    value = datetime(2014, 11, 30, 12, 31, 45)
    formatter = SnowflakeDateTimeFormat('YYYY-MM-DD')
    assert formatter.format(value) == '2014-11-30'

    # date time => date time
    value = datetime(2014, 11, 30, 12, 31, 45)
    formatter = SnowflakeDateTimeFormat('YYYY-MM-DD"T"HH24:MI:SS')
    assert formatter.format(value) == '2014-11-30T12:31:45'

    # date time => date time in microseconds with 4 precision
    value = datetime(2014, 11, 30, 12, 31, 45, microsecond=987654)
    formatter = SnowflakeDateTimeFormat('YYYY-MM-DD"T"HH24:MI:SS.FF4')
    assert formatter.format(value) == '2014-11-30T12:31:45.9876'

    # date time => date time in microseconds with full precision up to
    # microseconds
    value = datetime(2014, 11, 30, 12, 31, 45, microsecond=987654)
    formatter = SnowflakeDateTimeFormat('YYYY-MM-DD"T"HH24:MI:SS.FF')
    assert formatter.format(value) == '2014-11-30T12:31:45.987654'