У меня проблема с использованием поля даты и времени в базе данных Oracle с Coldfusion, и я не знаю, как ее решить.
У меня есть таблица (Тема), которая содержит поле даты и времени ("ИЗМЕНЕНО"). Если я смотрю дату, я получаю, например, 04-JAN-17. Если я сделаю этот запрос:
select to_char(MODIFIED, 'DD-MM-YYYY HH24:MI:SS') from Subject
Он возвращает:
04-01-2017 09:57:43
Я могу получить тот же результат в ColdFusion.
Затем я пытаюсь скопировать эти данные в другую таблицу с той же структурой, если значение «ИЗМЕНЕНО» изменилось. Для этого я получил данные в первом запросе и вставил их в новую таблицу. Данные извлекаются корректно. Особенно дату (я ее вижу в скрипте ColdFusion). Однако время даты теряется. Например, я получаю 01-04-2017 00:00:00 вместо 01-04-2017 09:57:43сильный>.
Вот соответствующая часть моего сценария:
Главная страница:
<!-------- Get data -------->
<cfquery name="select_Subject_to_insert" datasource="#application.datasource#">
SELECT CODE, MODIFIED, NAME FROM Subject
</query>
<cfloop query="select_Subject_to_insert">
<!-------- Create an object "Subject" -------->
<cfscript>
subject_to_insert = createObject("component", "Subject").init();
subject_to_insert.id = -1;
subject_to_insert.Code = select_Subject_to_insert.CODE;
subject_to_insert.modified = select_Subject_to_insert.MODIFIED;
subject_to_insert.name = select_Subject_to_insert.NAME;
</cfscript>
<!-------- Call the function for saving data -------->
saveSubject(subject_to_insert)
</cfloop>
Главный компонент:
<!--- Function to save (update) Subject. --->
<cffunction name="saveSubject" returntype="string" access="remote">
<cfargument name="subject" required="yes" type="vo.Subject" />
<cfset var timestp = createTimeStamp() />
<!--- insert --->
<cfquery name="insertSubject" datasource="#application.datasource#" result="insertSubjectResult">
insert into Subject (
CODE,
MODIFIED,
NAME
TIMESTAMP
)values (
<cfqueryparam value="#arguments.subject.CODE#" null="no" cfsqltype="cf_sql_varchar"/>,
<cfqueryparam value="#arguments.subject.MODIFIED#" null="no" cfsqltype="cf_sql_date"/>,
<cfqueryparam value="#arguments.subject.NAME#" null="no" cfsqltype="cf_sql_varchar"/>,
<cfqueryparam value="#timestp#" null="no" cfsqltype="cf_sql_numeric"/>
)
</cfquery>
........................................
</cffunction>
Не могли бы вы помочь мне понять, почему время вставлено неправильно, и решить проблему?