(解決策については、以下の私の回答を参照してください-フィードバックに感謝します)
それはおそらく本当に明白なことですが、私のSQLの何が問題になっているのかわかりません。
mysql> CREATE FUNCTION start_of_minute(
-> curdate DATE)
-> RETURNS DATE
-> DETERMINISTIC
-> SQL SECURITY INVOKER
-> BEGIN
-> DECLARE sofm DATE;
-> SET sofm = SUBDATE (
-> curdate,
-> INTERVAL SECOND(curdate) SECOND
-> );
-> RETURN sofm;
-> END //
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near ');
RETURN sofm;
END' at line 11
次のように動作するので、さらにいらいらします。
mysql> CREATE FUNCTION start_of_week(
-> curdate DATE,
-> first_day_of_week INTEGER)
-> RETURNS DATE
-> DETERMINISTIC
-> SQL SECURITY INVOKER
-> BEGIN
-> DECLARE sow DATE;
-> SET sow = SUBDATE(
-> curdate,
-> INTERVAL (WEEKDAY(curdate)+(7-first_day_of_week)%7) DAY
-> );
-> RETURN sow;
-> END //
Query OK, 0 rows affected (0.00 sec)
(NBさまざまなレベルで日付を切り捨てる他の方法があるかもしれません-そして私は確かにそれらについて聞くことに興味があります、私は本当に私の構文の何が悪いのか知りたいです-期間の始まりを計算するための別の方法ではありません) 。
はい、second()は有効な関数であり、SECONDは有効な間隔です。
TIA