mysql - MySql 相当于 MS 访问 DatePart
问题描述
我正在尝试将 MS Access 查询转换为 mysql 查询,但在SELECT
部分中我发现了一个 DatePart 函数,它从表 tbl_trade 中选择年份。我知道我们在 mysql 中有内置函数,如 YEAR()、EXTRACT() 等,但似乎我不能将它们用作
SELECT YEAR(tbl_trade.create_date) from tbl_trade;
它给出了一个错误
Unknown table 'tbl_trade' in field list
另外我不知道如何在mysql中实现DatePart函数的第3个和第4个参数。您可以从https://www.techonthenet.com/access/functions/date/datepart.php找到有关 DatePart 函数的更多详细信息
最后,我希望能够实现这个
SELECT DatePart("yyyy", tbl_trade.create_date,1,2) FROM tbl_trade
解决方案
select create_date, extract(year from create_date)
from tbl_trade;
+---------------------+--------------------------------+
| create_date | extract(year from create_date) |
+---------------------+--------------------------------+
| 2019-01-02 00:00:00 | 2019 |
| 2019-01-02 00:00:00 | 2019 |
+---------------------+--------------------------------+
至于更改星期和年份的定义,您可以将各种模式传递给week
.
-- Mode 7: Week starts on Monday. Week 1 is the first with a Monday.
select create_date, week(create_date, 7) from tbl_trade;
+---------------------+----------------------+
| create_date | week(create_date, 7) |
+---------------------+----------------------+
| 2019-01-02 00:00:00 | 53 |
| 2019-01-02 00:00:00 | 53 |
+---------------------+----------------------+
或者通过设置default_week_format
影响所有日期功能来做到这一点。
set default_week_format = 7;
select create_date, extract(week from create_date) from tbl_trade;
+---------------------+--------------------------------+
| create_date | extract(week from create_date) |
+---------------------+--------------------------------+
| 2019-01-02 00:00:00 | 53 |
| 2019-01-02 00:00:00 | 53 |
+---------------------+--------------------------------+
对于精细控制,有date_format
.
-- %v is mode 3. First DOW is Monday. First week is has 4 days or more.
select create_date, date_format(create_date, '%W week %v') from tbl_trade;
+---------------------+----------------------------------------+
| create_date | date_format(create_date, '%W week %v') |
+---------------------+----------------------------------------+
| 2019-01-02 00:00:00 | Wednesday week 01 |
| 2019-01-02 00:00:00 | Wednesday week 01 |
+---------------------+----------------------------------------+
推荐阅读
- c# - 如何创建 c# 模型类来生成特定的 XML
- c# - Visual Studio 2019 和 SQL Server 操作问题
- r - 根据与另一列最接近的 TRUE 值的索引来改变新列
- regex - 嵌套分组的正则表达式
- node.js - 将共享点 URL 添加到我的 QNA 机器人时出现“错误参数不受支持/无效 URL:”
- drools - Drools 工作台(业务中心)请求超时
- java - 如何让我的文本每行不打印一个字符?
- uicollectionview - CollectionView 按钮操作以转到另一个视图控制器以显示图像数组
- javascript - 具有相同数据的多个图表未在同一页面中加载:Highcharts
- android - 如何解决 gradlew publishReleaseBundle 不起作用?