aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/parser/sysfunc.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/backend/parser/sysfunc.c b/src/backend/parser/sysfunc.c
index 18e3c5afe54..fac1b60fd5a 100644
--- a/src/backend/parser/sysfunc.c
+++ b/src/backend/parser/sysfunc.c
@@ -45,10 +45,26 @@ static char *Sysfunc_system_date(void)
return &buf[0];
}
+static char *Sysfunc_system_time(void)
+{
+ time_t cur_time_secs;
+ struct tm *cur_time_expanded;
+ static char buf[10]; /* Just for safety, y'understand... */
+
+ time(&cur_time_secs);
+ cur_time_expanded = localtime(&cur_time_secs);
+ sprintf(buf, "%2.2d:%2.2d:%2.2d", cur_time_expanded->tm_hour,
+ cur_time_expanded->tm_min, cur_time_expanded->tm_sec);
+
+ return &buf[0];
+}
+
char *SystemFunctionHandler(char *funct)
{
if (!strcmp(funct, "SYS_DATE"))
return Sysfunc_system_date();
+ if (!strcmp(funct, "SYS_TIME"))
+ return Sysfunc_system_time();
return "*unknown function*";
}