Mysql user defined variable date type in where clause









up vote
0
down vote

favorite












I tried to simplify my long queries with user defined variables in Mysql. Unfortunately, these variables don't behave in where clause as expected - especially variables where is stored date. Here are 3 simplified queries:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE @var_date >= "2000-01-01"


This returns 0 rows



Another one:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01"


This return 0 rows as well.



SELECT id, 
@var_date := `date`
FROM aroma_exchanges
WHERE `date` >= "2000-01-01"


This one works as expected, returns a lot of rows. In my case the definition of date is very complex and in my real query I used it few times so I don't want to repeat the same subquery 5-10 times if I can store it into one variable and use it as I need to.
Question: how to make the first or second query to work properly? Thanks.










share|improve this question























  • The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
    – juergen d
    Nov 8 at 12:59











  • It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
    – Madhur Bhaiya
    Nov 8 at 13:06










  • @MadhurBhaiya: Aliases won't work either in this case.
    – juergen d
    Nov 8 at 13:13














up vote
0
down vote

favorite












I tried to simplify my long queries with user defined variables in Mysql. Unfortunately, these variables don't behave in where clause as expected - especially variables where is stored date. Here are 3 simplified queries:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE @var_date >= "2000-01-01"


This returns 0 rows



Another one:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01"


This return 0 rows as well.



SELECT id, 
@var_date := `date`
FROM aroma_exchanges
WHERE `date` >= "2000-01-01"


This one works as expected, returns a lot of rows. In my case the definition of date is very complex and in my real query I used it few times so I don't want to repeat the same subquery 5-10 times if I can store it into one variable and use it as I need to.
Question: how to make the first or second query to work properly? Thanks.










share|improve this question























  • The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
    – juergen d
    Nov 8 at 12:59











  • It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
    – Madhur Bhaiya
    Nov 8 at 13:06










  • @MadhurBhaiya: Aliases won't work either in this case.
    – juergen d
    Nov 8 at 13:13












up vote
0
down vote

favorite









up vote
0
down vote

favorite











I tried to simplify my long queries with user defined variables in Mysql. Unfortunately, these variables don't behave in where clause as expected - especially variables where is stored date. Here are 3 simplified queries:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE @var_date >= "2000-01-01"


This returns 0 rows



Another one:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01"


This return 0 rows as well.



SELECT id, 
@var_date := `date`
FROM aroma_exchanges
WHERE `date` >= "2000-01-01"


This one works as expected, returns a lot of rows. In my case the definition of date is very complex and in my real query I used it few times so I don't want to repeat the same subquery 5-10 times if I can store it into one variable and use it as I need to.
Question: how to make the first or second query to work properly? Thanks.










share|improve this question















I tried to simplify my long queries with user defined variables in Mysql. Unfortunately, these variables don't behave in where clause as expected - especially variables where is stored date. Here are 3 simplified queries:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE @var_date >= "2000-01-01"


This returns 0 rows



Another one:



SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01"


This return 0 rows as well.



SELECT id, 
@var_date := `date`
FROM aroma_exchanges
WHERE `date` >= "2000-01-01"


This one works as expected, returns a lot of rows. In my case the definition of date is very complex and in my real query I used it few times so I don't want to repeat the same subquery 5-10 times if I can store it into one variable and use it as I need to.
Question: how to make the first or second query to work properly? Thanks.







mysql date variables user-defined






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 8 at 13:17

























asked Nov 8 at 12:57









mesnicka

80861227




80861227











  • The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
    – juergen d
    Nov 8 at 12:59











  • It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
    – Madhur Bhaiya
    Nov 8 at 13:06










  • @MadhurBhaiya: Aliases won't work either in this case.
    – juergen d
    Nov 8 at 13:13
















  • The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
    – juergen d
    Nov 8 at 12:59











  • It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
    – Madhur Bhaiya
    Nov 8 at 13:06










  • @MadhurBhaiya: Aliases won't work either in this case.
    – juergen d
    Nov 8 at 13:13















The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
– juergen d
Nov 8 at 12:59





The select clause gets evaluated after the where clause. So at that time the variable is not set yet.
– juergen d
Nov 8 at 12:59













It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
– Madhur Bhaiya
Nov 8 at 13:06




It does not make any sense to store the column value in a variable and then use it in where condition. Are you looking for aliases ?
– Madhur Bhaiya
Nov 8 at 13:06












@MadhurBhaiya: Aliases won't work either in this case.
– juergen d
Nov 8 at 13:13




@MadhurBhaiya: Aliases won't work either in this case.
– juergen d
Nov 8 at 13:13

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53208228%2fmysql-user-defined-variable-date-type-in-where-clause%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53208228%2fmysql-user-defined-variable-date-type-in-where-clause%23new-answer', 'question_page');

);

Post as a guest














































































Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

Edmonton

Crossroads (UK TV series)