From ca2e10dd70eff85112abb3f09f0614371d770187 Mon Sep 17 00:00:00 2001 From: macy0122 Date: Thu, 1 Aug 2024 16:45:30 +0800 Subject: [PATCH] =?UTF-8?q?SQL=20SWERVER=20=E8=BF=94=E5=9B=9E=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E6=97=A5=E6=9C=9F=E5=92=8C=E6=97=B6=E9=97=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatisflex/core/constant/FuncName.java | 1 + .../mybatisflex/core/query/QueryMethods.java | 12 +++++-- .../coretest/QueryMethodsTest.java | 34 +++++++++++++++++++ 3 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 mybatis-flex-core/src/test/java/com/mybatisflex/coretest/QueryMethodsTest.java diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/constant/FuncName.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/constant/FuncName.java index 833e34df..2b2c63ba 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/constant/FuncName.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/constant/FuncName.java @@ -72,6 +72,7 @@ public class FuncName { public static final String FROM_UNIXTIME = "FROM_UNIXTIME"; public static final String GET_FORMAT = "GET_FORMAT"; public static final String GET_LOCT = "GET_LOCT"; + public static final String GET_DATE = "GETDATE"; public static final String HEX = "HEX"; public static final String HOUR = "HOUR"; public static final String INET_ATON = "INET_ATON"; diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryMethods.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryMethods.java index 961e7724..88198e37 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryMethods.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryMethods.java @@ -15,18 +15,17 @@ */ package com.mybatisflex.core.query; +import static com.mybatisflex.core.constant.FuncName.*; + import com.mybatisflex.core.table.TableInfo; import com.mybatisflex.core.table.TableInfoFactory; import com.mybatisflex.core.util.ArrayUtil; import com.mybatisflex.core.util.LambdaGetter; import com.mybatisflex.core.util.LambdaUtil; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import static com.mybatisflex.core.constant.FuncName.*; - /** * SQL 函数。 */ @@ -1220,6 +1219,13 @@ public class QueryMethods { return new FunctionQueryColumn(NOW); } + /** + * SQL SWERVER 返回当前日期和时间。 + */ + public static QueryColumn getDate() { + return new FunctionQueryColumn(GET_DATE); + } + /** * 返回当前日期和时间。 */ diff --git a/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/QueryMethodsTest.java b/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/QueryMethodsTest.java new file mode 100644 index 00000000..ebef2a0f --- /dev/null +++ b/mybatis-flex-core/src/test/java/com/mybatisflex/coretest/QueryMethodsTest.java @@ -0,0 +1,34 @@ +package com.mybatisflex.coretest; + +import static com.mybatisflex.coretest.table.AccountTableDef.ACCOUNT; + +import com.mybatisflex.core.dialect.DbType; +import com.mybatisflex.core.dialect.DialectFactory; +import com.mybatisflex.core.query.QueryMethods; +import com.mybatisflex.core.query.QueryWrapper; +import org.junit.Assert; +import org.junit.Test; + +public class QueryMethodsTest { + + @Test + public void testGetDate() { + QueryWrapper queryWrapper = QueryWrapper.create() + .select(ACCOUNT.ID) + .from(ACCOUNT) + .where(ACCOUNT.BIRTHDAY.lt(QueryMethods.getDate())); + DialectFactory.setHintDbType(DbType.SQLSERVER); + Assert.assertEquals("SELECT [id] FROM [tb_account] WHERE [birthday] < GETDATE()", queryWrapper.toSQL()); + } + + @Test + public void testSysDate() { + QueryWrapper queryWrapper = QueryWrapper.create() + .select(ACCOUNT.ID) + .from(ACCOUNT) + .where(ACCOUNT.BIRTHDAY.lt(QueryMethods.sysDate())); + DialectFactory.setHintDbType(DbType.ORACLE); + Assert.assertEquals("SELECT ID FROM TB_ACCOUNT WHERE BIRTHDAY < SYSDATE()", queryWrapper.toSQL()); + } + +}