求任意日期到 1970年1月1日0点0分的秒数的算法。例如:计算2011-1-1日12点28分10秒到970年1月1日0点0分秒

不修改系统时间,time()总是取得当前时间到1970年1月1日0点0分的秒数,现在是要求任意时间! 谢谢 各位大侠!!!

第1个回答  2011-03-29
select round(months_between('1-1月-1970',sysdate)) from dual;
得到的是月数,然后变成秒数
第2个回答  推荐于2016-12-01
用difftime()和mktime()配合使用
mktime()函数原型time_t __cdecl mktime(struct tm *)
tm是个struct,定义是
struct tm {
int tm_sec; /* seconds after the minute - [0,59] */
int tm_min; /* minutes after the hour - [0,59] */
int tm_hour; /* hours since midnight - [0,23] */
int tm_mday; /* day of the month - [1,31] */
int tm_mon; /* months since January - [0,11] */
int tm_year; /* years since 1900 */
int tm_wday; /* days since Sunday - [0,6] */
int tm_yday; /* days since January 1 - [0,365] */
int tm_isdst; /* daylight savings time flag */
};

用mktime分别得到你要计算的时间和1970年1月1日0点0分0秒的两个time_t
然后在用difftime()即可算出结果
difftime()定义
double __cdecl difftime(time_t, time_t);本回答被提问者采纳