在我的网页上,我有2个文本框,我可以从中输入年份和月份。你能告诉我一个mysql查询,它会得到那个月的天数。我想在我的代码中使用它,并根据我需要做其他事情的天数。我搜索并找到了类似的东西
SELECT DAY(LAST_DAY('2012-02-1'));
这是我背后的代码
public void search(object sender, EventArgs e)
{
string cnnString = "Server=localhost;Port=3307;Database=leavesystem;Uid=root;Pwd=ashish";
MySqlConnection cnx = new MySqlConnection(cnnString);
cnx.Open();
string cmdText = "Select DAY(LAST_DAY(CAST(CONCAT(@'" + year.value +"', '-', @'"+ month.value+"', '-', 1) AS DATE))) ";
MySqlCommand cmd = new MySqlCommand(cmdText, cnx);
}
这给了我天数,但我没有日期。我有2个文本框值年和月。你可以问我这个问题吗?
答案 0 :(得分:1)
假设您有两个参数:
SET @y = 2013;
SET @m = 5;
@y
将成为年份,@m
将是月份。
由于每个月都有第一天,因此您可以将日期1
设置为常量
SELECT DAY(LAST_DAY(CAST(CONCAT(@y, '-', @m, '-', 1) AS DATE)));
顺便说一下,我正在使用会话变量,我想你会使用INPUT
个参数,我猜它会是一样的。
编辑1
如果查询中传递的月份为MONTHNAME
,您可以在code-behind
中更改它。但是如果你坚持,这是获取MONTHNUMBER
的查询:
SET @m = MONTH(STR_TO_DATE('June', '%M'));
以下是最终查询:
SET @y = 2013;
SET @m = 'June';
SELECT DAY(LAST_DAY(CAST(CONCAT(@y, '-', MONTH(STR_TO_DATE(@m, '%M')), '-', 1) AS DATE)));
答案 1 :(得分:0)
如果您在查询中默认提供每个月的01
该怎么办,不知道您的编程语言,只是为了提供一个想法
var date_vaiable=year_variable+"-"month_variable+"-01"; //+ sign is for concat concept
SELECT DAY(LAST_DAY(date_vaiable));