Let (
[
_error = "";
_dateOrder = JSONGetElement( Get(FileLocaleElements); "Date.DateOrderName");
_elements = Split( fmtimestamp; " ");
_date = GetValue( _elements; 1 );
_error = List(_error; Case( IsEmpty ( _date ) or not IsValid( GetAsDate( _date ) ); "error"));
_sql_date = Let (
[
_e = Split( _date; "/" );
_Y = GetValue( _e; 1 );
_M = GetValue( _e; 2 );
_D = GetValue( _e; 3 )
];
Join(
Case( _dateOrder="DMY"; List( _D; _M; _Y );
Case( _dateOrder="MDY"; List( _M; _D; _Y );
Case( _dateOrder="YMD"; List( _Y; _M; _D );
Case( _dateOrder="YDM"; List( _Y; _D; _M )
) ) ) ); "-" )
);
_time = GetValue( _elements; 2 );
_time = GetAsTime( Case( IsEmpty( _time ); "0" ; _time ) );
_error = List(_error; Case(not IsValid ( _time ); "error"))
];
Case( IsEmpty( _error ); "TIMESTAMP '" & _sql_date & " " & _time & "'"; Join(_error;"/") )
)
/*
by air.fsans@gmail.com 2022
FM Timestamp to SQL std Timestamp
TimestampToSQL(fmtimestamp)
08/07/2022 10:46:18 -> TIMESTAMP '2022-07-08 10:46:18'
08/07/2022 -> TIMESTAMP '2022-07-08 00:00:00'
08/30/2022 -> "error" (Warnig! date must be DD/MM/YYY)
08/07/2022 10:66:18 -> TIMESTAMP '08/07/2022 11:06:18' (Warnig! >59 minutes(seconds) -> +1 hour(minute)
comaptibility:
FileMaker >= 19.5
dependencies:
Split(str, delim) https://gist.github.com/fsans/2362de406f7935d9c9e56ed44aa10db0
Join(fmlist, delim)
*/
Last active
December 13, 2023 18:36
-
-
Save fsans/178756faaa412d175c740dc60f4c0461 to your computer and use it in GitHub Desktop.
Format FileMaker Timestamp to SQL92 syntax
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Be aware that FileMaker 19.5+ is required since I'm using Get(FileLocaleElements) to get the system locale metadata to use the right format (DMY, MDY, YMD,... )