
从sqlserver数据库中提取日期应该使用,并把年月日分别截取出来应该使用
数据库提供的时间函数。
1:使用year,month,day用来提取年月日
如:select year(getdate()),month(getdate()),day(getdate())
2:使用DATEPART 获取年月日
如:select DATEPART('year',getdate()),DATEPART('month',getdate()),DATEPART('day',getdate())
----------------------------------------------------------------------------
如果字段是varchar类型的话,可以先将字段转换为日期类型。
使用类型转换函数convert或者cast
如:cast('2015-07-14' as datetime)
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <timeh>
using namespace std;
// 判断星期几
int getWeekDay(const int year, const int yday)
{
int n = year - 1 + (int)((year - 1) / 4) - (int)((year - 1) / 100) + (int)((year - 1) / 400) + yday;
return n % 7;
}
// 是否闰年
bool isLeapYear(const int year)
{
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
// 获取当天是一年中的第几天
int getYearDay(const int year, const int month, const int mday)
{
int yday = 0;
for (int i = 1; i < month; i++)
{
switch (i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
yday += 31;
break;
case 4:
case 6:
case 9:
case 11:
yday += 30;
break;
case 2:
yday += (isLeapYear(year) 29 : 28);
break;
}
}
yday += mday;
return yday;
}
// 计算两个日期的天数差(假设date1小于date2)
int getDayCount(const struct tm &date1, const struct tm &date2)
{
int nday = 0;
int yday1 = getYearDay(date1tm_year + 1900, date1tm_mon + 1, date1tm_mday);
int yday2 = getYearDay(date2tm_year + 1900, date2tm_mon + 1, date2tm_mday);
for (int i = date1tm_year; i < date2tm_year; i++)
{
if (isLeapYear(i + 1900))
nday += 366;
else nday += 365;
}
nday += (yday2 - yday1);
return nday;
}
// 公历节日,随便弄15个。
const char festivals[] = {
"1,1", "元旦",
"2,14", "情人节",
"3,8", "妇女节",
"3,12", "植树节",
"3,15", "消费者权益日",
"4,1", "愚人节",
"4,5", "清明节",
"5,1", "劳动节",
"5,4", "青年节",
"6,1", "儿童节",
"7,1", "建党节",
"8,1", "建军节",
"9,10", "教师节",
"10,1", "国庆节",
"12,25", "圣诞节"
};
char weekdays[] = { "日", "一", "二", "三", "四", "五", "六" };
void setDate(struct tm &date, const int year, const int month, const int day)
{
datetm_year = year;
datetm_mon = month;
datetm_mday = day;
}
void testDate1()
{
int month, year, day;
cout << "请输入你想知道的年月日(用逗号隔开):";
scanf("%d,%d,%d", &year, &month, &day);
//cin >> year >> month >> day;
//距离元旦的天数
int yday = getYearDay(year, month, day);
// 将日期赋值到tm结构体中,方便函数调用
struct tm date;
setDate(date, year - 1900, month - 1, day);
// 取得今天的时间,并转换为tm结构体
time_t now = time((time_t)NULL);
struct tm today = localtime(&now);
int nday;
// 将年月日换算成如20160412的整数然后进行比较,简单直观
if (year 10000 + (month - 1) 100 + day >=
(today->tm_year + 1900) 1000 + today->tm_mon 100 + today->tm_mday)
nday = getDayCount(today, date);
else nday = getDayCount(date, today);
printf("%d,%d,%d离今天有%d天!\n", year, month, day, nday);
int wday = getWeekDay(year, yday);
cout << "是星期" << weekdays[wday] << endl;
// 看看今天是什么节日
char szDate[10] = { '\0' };
sprintf(szDate, "%d,%d", month, day);
for (int i = 0; i < 30; i+= 2)
{
if (strcmp(szDate, festivals[i]) == 0)
{
cout << "是" << festivals[i + 1] << "!\n";
break;
}
}
}
void testDate2()
{
struct tm date1900;
setDate(date1900, 0, 0, 1);
int year, month, day;
cout << "请输入你想知道的年月日(用逗号隔开):";
scanf("%d,%d,%d", &year, &month, &day);
struct tm date;
setDate(date, year - 1900, month - 1, day);
// 求出所输入日期和1900年1月1日的日期差就能判断
int ndays = getDayCount(date1900, date);
// 三天打渔两天晒网,即每5天一个周期。
int cycle = ndays % 5;
// 对5求模,则结果是0-3的话就是打渔,否则就是晒网
if (cycle < 3)
cout << "这天是在打渔!" << endl;
else
cout << "这天是在晒网!" << endl;
}
int main()
{
cout << "1 离今天还有多少天!\n" <<
"2 是打渔还是晒网!\n" <<
"3 退出!" << endl;
int op;
do
{
cout << "请选择 1,2,3!\n";
cin >> op;
if (op < 1 || op > 3)
continue;
switch (op)
{
case 1:
testDate1();
break;
case 2:
testDate2();
break;
default:
break;
}
} while (op != 3);
system("pause");
return 0;
}
使用where方法
where方法支持时间比较,例如:
//
大于某个时间
where('create_time','>
time','2016-1-1');
//
小于某个时间
where('create_time','<=
time','2016-1-1');
//
时间区间查询
where('create_time','between
time',['2015-1-1','2016-1-1']);
第三个参数可以传入任何有效的时间表达式,会自动识别你的时间字段类型,支持的时间类型包括timestamps、datetime、date和int。
使用whereTime方法
whereTime方法提供了日期和时间字段的快捷查询,示例如下:
//
大于某个时间
db('user')
->whereTime('birthday',
'>=',
'1970-10-1')
->select();
//
小于某个时间
db('user')
->whereTime('birthday',
'<',
'2000-10-1')
->select();
//
时间区间查询
db('user')
->whereTime('birthday',
'between',
['1970-10-1',
'2000-10-1'])
->select();
//
不在某个时间区间
db('user')
->whereTime('birthday',
'not
between',
['1970-10-1',
'2000-10-1'])
->select();
时间表达式
还提供了更方便的时间表达式查询,例如:
//
获取今天的博客
db('blog')
->whereTime('create_time',
'today')
->select();
//
获取昨天的博客
db('blog')
->whereTime('create_time',
'yesterday')
->select();
//
获取本周的博客
db('blog')
->whereTime('create_time',
'week')
->select();
//
获取上周的博客
db('blog')
->whereTime('create_time',
'last
week')
->select();
//
获取本月的博客
db('blog')
->whereTime('create_time',
'month')
->select();
//
获取上月的博客
db('blog')
->whereTime('create_time',
'last
month')
->select();
//
获取今年的博客
db('blog')
->whereTime('create_time',
'year')
->select();
//
获取去年的博客
db('blog')
->whereTime('create_time',
'last
year')
->select();
如果查询当天、本周、本月和今年的时间,还可以简化为:
//
获取今天的博客
db('blog')
->whereTime('create_time',
'd')
->select();
//
获取本周的博客
db('blog')
->whereTime('create_time',
'w')
->select();
//
获取本月的博客
db('blog')
->whereTime('create_time',
'm')
->select();
//
获取今年的博客
db('blog')
->whereTime('create_time',
'y')
->select();
V505+版本开始,还可以使用下面的方式进行时间查询
//
查询两个小时内的博客
db('blog')
->whereTime('create_time','-2
hours')
->select();
这些在开发手册中都可以找到的。希望可以帮到你。
在asp获取时间的年月日:
1、<%=datepart("yyyy",rs1("time"))%>年<%=datepart("m",rs1("time"))%>月<%=datepart("d",rs1("time"))%>日
2、year1=year(now())
month1=month(now())
day1=day(now())
Hour1=Hour(now())
Minute1=Minute(now())
Second1=Second(now())
取得时间相关的信息的话,要用到python time模块,python time模块里面有很多非常好用的功能,你可以去官方
文档了解下,要取的当前时间的话,要取得当前时间的时间戳,时间戳好像是1970年到现在时间相隔的时间。
你可以试下下面的方式来取得当前时间的时间戳:
import time
print timetime()
以上就是关于怎么获得dateTime的年月日并且拼接全部的内容,包括:怎么获得dateTime的年月日并且拼接、问:c++程序设计: 1,输入年月日,输出距离今天还有多少天,星期几,是否是公历日。假定输入的年份、怎样在thinkphp 查询语句中将时间戳格式转化为年月日格式,然后再作为where条件查询等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)